【问题标题】:DB.collection is not a function in firebase?DB.collection 不是 firebase 中的功能?
【发布时间】:2021-10-28 00:36:19
【问题描述】:

我正在尝试连接到 firebase 实时数据库(不是 firestore),但我收到 db.collection 不是函数的错误。 StackOverflow 中的其他答案是关于 Firestore 的。感谢您的帮助。

const admin = require('firebase-admin');

// Firebase configuration - this should not be public.
// Please use your own config if you intend to use this code.
var firebaseConfig = {
  apiKey: "xxxxxxxxxxxxxxxxxx",
  authDomain: "xxxxxxxxxxxxxxxxxx",
  databaseURL: "xxxxxxxxxxxxxxxxxx",
  projectId: "xxxxxxxxxxxxxxxxxx",
  storageBucket: "xxxxxxxxxxxxxxxxxx",
  messagingSenderId: "xxxxxxxxxxxxxxxxxx",
}

// Initialize Firebase
admin.initializeApp(firebaseConfig)

const db = admin.database();
console.log("Database setup");

(async () => {
  try {
    let query = db.collection('users');
    console.log("Doing database query now");
    await query.get().then(querySnapshot => {
      console.log(querySnapshot);
    });
  } catch (error) {
    console.log(error);
  }
})();

【问题讨论】:

    标签: node.js firebase-realtime-database firebase-admin


    【解决方案1】:

    const db = admin.database() 是 Firebase 实时数据库的一个实例,而不是 Firestore。要获取 Firestore 实例,请使用 admin.firestore()。

    const admin = require('firebase-admin');
    
    admin.initializeApp(/* service account */)
    
    const db = admin.firestore();
    console.log("Firestore setup");
    

    Admin SDK 使用服务帐户,而不是相同的公共凭据。详细信息可以参考documentation。您可以从project settings 获取服务帐号。

    请注意,如果您使用云功能,则可以将initializeApp() 留空。

    【讨论】:

    • 我正在使用实时数据库。请您给我一些关于如何连接到实时数据库并从中检索数据的建议。谢谢
    • @MayureshAn 可以参考documentation。它有很多例子。 admin.database().ref("/path").once("value")
    • Node.js Admin SDK,另见getting started guide。
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2021-10-31
    • 2021-01-25
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多