node.js - 无法从 Firebase 检索文档列表

标签 node.js firebase google-cloud-firestore google-cloud-functions firebase-admin

我正在尝试在我的 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);

})

没有什么真正打印集合中的文档。我得到的只是对该集合的引用,并且不太清楚如何接收该集合中的条目。 有什么建议吗?

最佳答案

你已经不远了!如图here在文档中,您确实必须使用 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 提供的产品/服务,但有所不同。

关于node.js - 无法从 Firebase 检索文档列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098908/

相关文章:

javascript - 通过doc内的2个参数查询集合

java - 未经检查的对 Class<T> 的调用

javascript - Sequelize 调用结构

node.js - 如何使用multer和NodeJS将图像上传到GCS存储桶?

ios - Firebase 消息传递仅适用于前台

ios - FirebaseUI 安装问题 (iOS-Swift)

java - 无法使用 Push Id Firebase 弹回输入

css - 我如何找出导致我的 css 在 chrome 中被删除线的原因?

javascript - promise 的连接不返回任何内容 (JS)

javascript - 如何从 firebase 集合中获取不等于给定 ID 的第一个文档 ID?