大多数应用程序都有一个“代表客户X”的按钮。使用Firebase可以实现这一点吗?
我注意到我可以使用自定义登录名创建管理令牌,但是由于数据不可避免地被用户的ID索引,所以如果我仍然像我自己一样的话,获取用户的数据是很困难的。
发布于 2014-01-23 15:33:31
您可以通过自定义登录创建令牌来模拟以用户身份登录。
例如,如果您的安全规则正在使用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) { /* ... */ });这种技术对于测试安全规则也很有用,而不需要在dev环境中创建多个帐户。
https://stackoverflow.com/questions/21296957
复制相似问题