0

大多数应用程序都有一个“代表客户 X 行动”按钮。使用 Firebase 可以实现吗?

我注意到我可以使用自定义登录创建一个管理员令牌,但由于数据不可避免地由用户的 ID 索引,如果我仍然以我自己的身份进行身份验证,那么获取用户的数据是很困难的。

4

1 回答 1

3

您可以通过自定义登录创建令牌来模拟以用户身份登录

例如,如果您的安全规则使用 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) { /* ... */ });

此技术还可用于测试安全规则,而无需在您的开发环境中创建多个帐户。

于 2014-01-23T15:33:31.763 回答