2017-01-10 78 views
0

我有两个Firebase项目F1和F2。我正在使用基于密码的身份验证来识别F1上的用户。我正在寻找在F2中识别相同的用户。所以,我想基于this question以下情形:如何在其他Firebase项目中使用Firebase身份验证

Client --------- authenticates with email password --------->> Firebase F1 
Client <<----------------- get auth token -------------------- Firebase F1 
Client ------ custom authenticates with returned token ----->> Firebase F2 
    * Firebase F2 <<---------- check auth token ------------- App Server (NodeJs)  
     App Server <<---------- validates auth token ------------ Firebase F1 

是否有可能配置服务器挂钩(在这种情况下,应用服务器),其中火力(F2)检查自定义标记是否有效(行*)?

万一这是可能的,如何做到这一点? 如果这不可行,请问有什么方法可以在不同的Firebase项目中验证同一用户(同一个用户)?

+0

您可以在数据库中指定规则,以便F1中的用户可以在F2中编写,读取或验证。如果这有帮助,我可以告诉你如何完成它。 –

+0

这就是我正在寻找的。我的问题是在F1和F2上有相同的用户,或者有其他选择。 – iouhammi

回答

0

我在这里找到答案firebase rules: how to restrict access based on user role

"Node": { 
    "$field": { 
     ".read": root.child('Projects/' + data.child('project').val() + '/Members/' + auth.uid).exists()", 
     ".write": //same here 
    } 
} 

基本上它,如果你有这样的用户在数据库中的信息将检查:

如下您可以设置规则。希望这可以帮助。

+0

我的项目意思是全球firebase/google项目(完全不同的firebase实例),不仅是同一个firebase数据库中的路径。所以我在寻找的是在这两个数据库中使用“auth.uid == data.val()”规则,并且用户应该具有相同的uid。 – iouhammi