大多数应用程序都有一个“代表客户 X 行动”按钮。使用 Firebase 可以实现吗?
我注意到我可以使用自定义登录创建一个管理员令牌,但由于数据不可避免地由用户的 ID 索引,如果我仍然以我自己的身份进行身份验证,那么获取用户的数据是很困难的。
大多数应用程序都有一个“代表客户 X 行动”按钮。使用 Firebase 可以实现吗?
我注意到我可以使用自定义登录创建一个管理员令牌,但由于数据不可避免地由用户的 ID 索引,如果我仍然以我自己的身份进行身份验证,那么获取用户的数据是很困难的。
您可以通过自定义登录创建令牌来模拟以用户身份登录。
例如,如果您的安全规则使用 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) { /* ... */ });
此技术还可用于测试安全规则,而无需在您的开发环境中创建多个帐户。