大多数应用都有“代表客户X行事”按钮。这可以使用Firebase实现吗?
我注意到我可以create an admin token使用自定义登录,但由于数据不可避免地被用户的ID编入索引,因此如果我仍然以自己身份验证,则难以获取用户的数据。
答案 0 :(得分:3)
您可以通过custom login创建令牌来模拟以用户身份登录。
例如,如果您的安全规则正在使用auth.uid,如下所示:
".write": "auth.uid == $user_id"
然后,您可以使用相应的uid生成令牌(以及您正在使用的简单登录中的任何其他详细信息):
function superUserToken(USER_ID) {
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator(YOUR_FIREBASE_SECRET);
return tokenGenerator.createToken({uid: USER_ID});
}
然后当你想su
给另一个用户时,只需用新令牌直接调用auth():
var fbRef = new Firebase(URL);
fbRef.auth( superUserToken('Kato!'), function(error, user) { /* ... */ });
此技术对于测试安全规则也很有用,无需在开发环境中创建多个帐户。