我有一个Firebase实时数据库。我有一个使用电子邮件和密码的用户:
我也有一些规则:
{
"rules": {
".read": true,
"blogposts": {
".write": "auth !== null"
}
}
}
从规则中可以看到,除非auth不为null,否则我不希望任何人写博客文章。我假设如果可以使用上面的用户凭据登录,则auth不会为null(如果我输入错了,请更正我)。
我在服务器上使用Firebase Admin SDK。我从这里生成了一个密钥文件:
密钥文件位于我的服务器上,我正在使用它来初始化Firebase Admin:
const serviceAccount = require('my-key-file.json');
fbadmin.initializeApp({
credential: fbadmin.credential.cert(serviceAccount),
databaseURL: '...'
});
目前,我不确定如何使用上述用户凭据进行身份验证。我如何1)与上述用户进行身份验证,以及2)在上述规则中将auth设置为不为null?谢谢。
答案 0 :(得分:0)
Admin SDK不支持用户身份验证操作。您必须为此使用Firebase客户端SDK之一(Android,IOS,Web等)。此外,默认情况下,安全规则不会验证源自Admin SDK的数据库请求。尽管您可以使SDK发出数据库请求,但好像它们来自特定的预定义用户:https://firebase.google.com/docs/database/admin/start#authenticate-with-limited-privileges