【发布时间】:2018-11-04 15:55:55
【问题描述】:
我创建的 API 使用 firebase 客户端 sdk 通过实时数据库规则授权用户,但是当我使用 firebase 应用生成的令牌时,api 返回“PERMISSION_DENIED”。
这是我的 api 的短代码:
// GET {{url}}/users
import * as admin from 'firebase-admin';
import * as firebase from 'firebase';
// admin sdk to verify generated token.
const userAuth = await admin.auth().verifyIdToken(accessToken); // return user object, no problem with that.
const user = await firebase.database().ref(`users/${userAuth.uid}/`).once('value'); // this causes "PERMISSION_DENIED" when fetch data from database.
我的数据库规则示例:
{
"rules": {
"users": {
".read": "auth !== null"
},
},
}
我使用 firebase 客户端 sdk 对其应用 db 规则,但我不想使用 admin sdk,因为它具有完全的管理员权限。 那么我该如何解决这个问题呢?
【问题讨论】:
-
我不完全明白你在问什么。看起来有点像XY problem。你想在这个脚本中完成什么?
-
我需要 admin SDK 以通过特定用户的令牌访问实时数据库。 (我无法多次初始化 admin sdk。
标签: javascript firebase-realtime-database firebase-admin firebase-security