node.js - 无法从 Firebase 检索文档列表
问题描述
我正在尝试在我的 firebase 函数上使用 admin SDK 和 firestore api 检索文档列表。我尝试使用以下内容:
import * as admin from 'firebase-admin';
const adminFirestore = admin.firestore();
adminFirestore.collection('accounts');
collection.get().then(snapshot => {
snapshot.forEach(doc => {
console.log( doc.data() );
});
});
但是,这不会打印此集合中的单个文档。我还尝试了以下方法:
const ref = adminDb.ref('accounts');
ref.once("value")
.then(function(snapshot) {
console.log(snapshot);
});
ref.once('value', (snapshot) => {
console.log(snapshot.val());
}).then(something => {
console.log(something);
})
没有什么能真正打印收集器中的文档。我得到的只是对集合的引用,并且不太清楚如何接收该集合中的条目。有什么建议吗?
解决方案
你不远了!如文档中所示,您确实必须使用该get()
方法,但您的问题来自您尚未声明collection
变量的事实。
您应该执行以下操作:
const adminFirestore = admin.firestore();
const collection = adminFirestore.collection('accounts');
collection.get().then(snapshot => {
snapshot.forEach(doc => {
console.log( doc.data() );
});
});
或者,其他可能性,如下:
const adminFirestore = admin.firestore();
adminFirestore.collection('accounts').get().then(snapshot => {...});
或如下:
admin.firestore().collection('accounts').get().then(snapshot => {...});
请注意,在您的第二次尝试中,const ref = adminDb.ref('accounts');
您实际上是针对Realtime Database,这与Cloud Firestore数据库不同(请参阅https://firebase.google.com/docs/reference/node/firebase.database.Database?authuser =0#ref )。它们都是 Firebase 提供的产品/服务,但有所不同。
推荐阅读
- python-3.x - 使用boto3(python 3.x)将文件上传到aws s3存储桶维护文件结构?
- google-cloud-platform - 未能创建谷歌云函数
- sockets - Octave 中的 pkg 负载插座
- openmdao - 一个组中的半个组不使用相同的输入
- laravel - Laravel:使用队列每小时发送 1000 封电子邮件
- c++ - Array Length,为什么从命令行获取时不能使用?
- google-bigquery - 我可以从 bigquery 导出到使用不同凭据访问的存储桶吗?
- java - BeanUtils:将字符串日期格式的地图字段填充到日期属性
- java - Android grpc 执行失败
- django - 禁止更新 django 模型字段