firebase - 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.firestore
ite 工作正常并且我的所有代码都工作相同。
先感谢您!
解决方案
用于 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进行比较。
推荐阅读
- python - 基于带有循环的模式匹配两个列表的元素
- sql - 使用 VBA 将表从 sql server 导出到访问表
- javascript - jQuery 平滑滚动以在移动设备上使用固定菜单锚定
- elasticsearch - SQL Server 数据库 > Logstash > Elasticsearch:将与同一实体相关的结果集记录映射到同一 ES 文档
- android - 安卓 Facebook 登录。防止按钮更改为“注销”
- flutter - 如何使用 Flutter Web 将数据保存在浏览器的 cookie 中?
- java - 使用 Maven Shade 构建应用程序 jar 时,排除所有 META-INF/versions 目录/文件是否安全?
- amazon-dynamodb - 查询 DynamoDB 表以按创建日期获取前 100 条记录的顺序
- excel - 记住位于另一列的一列中的公式的前一个值
- python-3.x - 如何将生成的 AsyncResult 传递给 FastAPI python 中的其他 API