twe*_*ypi 5 javascript firebase google-cloud-functions firebase-admin
我正在初始化我的 firebase 函数,如下所示:
admin.initializeApp(functions.config().firebase)
Run Code Online (Sandbox Code Playgroud)
我已经生成了一个服务帐户密钥,我相信我需要出于身份验证目的来执行此操作。
它给了我一个带有各种键/值的 json 表。
说明是将其添加到 admin.initializeApp 中,如下所示:
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
Run Code Online (Sandbox Code Playgroud)
这与我的做法非常不同。
我什至不确定我是否需要这样做,因为我确实可以使用以前的方法访问 firestore,但是使用有效用户 id 令牌进行身份验证不起作用,在 firebase 中出现以下错误:
错误:错误:解码 Firebase ID 令牌失败。确保您传递了代表 ID 令牌的整个字符串 JWT。有关如何检索 ID 令牌的详细信息,请参阅 https://firebase.google.com/docs/auth/admin/verify-id-tokens 。
通过嗅探,似乎缺少的是 admin sdk 服务帐户。
此代码片段是初始化适用于 Node.js 的 Firebase Admin SDK 的通用方法:
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
Run Code Online (Sandbox Code Playgroud)
如您所见,它要求您从控制台下载 JSON 文件,并将其添加到路径中。
这有点挑剔,一些开发人员发现很难开始工作。由于 Cloud Functions 环境完全在 Firebase 的控制之下,因此它变得更容易一些。您的其他片段显示了如何:
admin.initializeApp()
Run Code Online (Sandbox Code Playgroud)
两个代码片段完成相同的任务,但后者仅适用于 Firebase 的 Cloud Functions。
| 归档时间: |
|
| 查看次数: |
4698 次 |
| 最近记录: |