mar*_*ler 2 firebase firebase-authentication firebase-realtime-database google-cloud-functions
我有一组Firebase函数,可以用作应用程序的API。
这些Firebase函数以管理员权限连接到数据库,如下所示:
const serviceAccount = require(`./config/xxx-firebase-adminsdk.json`);
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: DATABASE_URL,
});
Run Code Online (Sandbox Code Playgroud)
我能够创建自定义令牌,并在服务器中接收/解码该令牌,但由于Firebase函数已通过管理员权限进行了身份验证,因此无法使用安全规则。
访问数据库时,是否可以模拟凭据或通过其他用户?
您可以按照文档中的说明使用用户级特权来初始化admin SDK :
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://databaseName.firebaseio.com",
databaseAuthVariableOverride: {
uid: "the-user-id"
}
}, "some-other-name");
Run Code Online (Sandbox Code Playgroud)
如果您已经初始化了默认实例,则需要“ some-other-name”。有关更多详细信息,请参见initializeApp()。
您显然必须知道经过身份验证的用户的UID才能进行此工作。同样,应该清楚的是,每次要与其他用户一起做某事时,都必须初始化SDK,这意味着您必须在UID可能不同的每个函数调用上初始化。
归档时间: |
|
查看次数: |
404 次 |
最近记录: |