首页 > 解决方案 > Firebase.firestore 与 admin.firestore

问题描述

我正在学习 GCP,在他们的 Firestore 中,我对 Admin.firestore 和 Firebase.firestore 的区别感到困惑。

这是管理员的代码:

const admin = require("firebase-admin");
admin.initializeApp({
    credential: admin.credential.applicationDefault(),
    databaseURL: "https://<firestoreprojectnameurl>"
const db = admin.firestore();
  });

虽然这是firestore的代码

const { config } = require('./config');
const firebase = require("firebase");
firebase.initializeApp(config);
const db = firebase.firestore();

请注意,一次只有 1 db 可以工作,对于我当前的设置,我使用db = firebase.firestore()虽然如果我将其更改为db = admin.firestoreite 工作正常并且我的所有代码都工作相同。

先感谢您!

标签: firebasegoogle-cloud-platformgoogle-cloud-firestore

解决方案


用于 Web 客户端的 JavaScript SDK(您的第二个示例)与用于 nodejs 后端的 JavaScript SDK(您的第一个示例)不同。它们有不同的 API,尽管它们对于大多数类型的查询可能看起来非常相似。但它们绝对不能互换。您应该选择与将要使用的环境相匹配的那个。Firebase Admin SDK 绝对不能在 Web 客户端中使用,尽管 Web 客户端 SDK 可能在 nodejs 后端环境中工作(但我不推荐它)。

了解 Firebase Admin SDK 实际上只是 Google Cloud nodejs SDK 的包装器也可能会有所帮助。如果您想仔细查看,可以将web SDK的 API 文档与nodejs SDK进行比较。


推荐阅读