Javascript 使用fb身份验证的firebase json db安全规则

Javascript 使用fb身份验证的firebase json db安全规则,javascript,firebase,firebase-realtime-database,firebase-authentication,ionic3,Javascript,Firebase,Firebase Realtime Database,Firebase Authentication,Ionic3,我的移动应用程序使用的是ionic 3 angular,登录时使用的是fb native cordova插件 firebase db安全文档使用如下语法 { "rules":{ "users":{ "$user_id":{ ".write":"$user_id === auth.id" } } } } fb身份验证在我的应用程序中如下所示 doLogin(){ if (th

我的移动应用程序使用的是ionic 3 angular,登录时使用的是fb native cordova插件

firebase db安全文档使用如下语法

{  
   "rules":{  
      "users":{  
         "$user_id":{  
            ".write":"$user_id === auth.id"
         }
      }
   }
}
fb身份验证在我的应用程序中如下所示

 doLogin(){
    if (this.platform.is('cordova')) {
      return this.fb.login(['email', 'public_profile']).then(res => {
        const facebookCredential = firebase.auth.FacebookAuthProvider.credential(res.authResponse.accessToken);
         firebase.auth().signInWithCredential(facebookCredential);
         this.navCtrl.setRoot(TabsPage); 
      })
    }
}

我的问题是auth firebase变量与上面的代码有关,或者我需要为auth提供一些额外的东西来获得所需的uid等?

auth firebase变量在理论上是令牌式的:假设您已经启用了Facebook登录方法。但是,显示的数据库规则不一定相关

这些规则(同上):

指示用户只能使用相同的uid写入子节点。我将
$user\u id
更改为
$variable
,以突出显示
$
仅表示表示子节点名称的变量。 (我可能应该提到它应该是
auth.uid
而不是
auth.id

这用于保存用户特定的数据。所以,当他们注册时,你可以有一个函数

firebase.database().ref('users').child(firebase.auth().currentUser.uid).update(<your custom data here>);
firebase.database().ref('users').child(firebase.auth().currentUser.uid).update();
*请注意,用户的子级是“firebase.auth().currentUser.uid”,可以选择从
firebase.auth().signiWithCredential()
promise中检索


如果解释的必要性更高,我很抱歉。简言之登录后,
firebase.auth().currentUser.uid
始终存在uid,该uid是数据库规则在
auth.uid
中引用的uid,最后,firebase几乎100%注意到了auth/uid/etc。

是的,主要目的是询问是否注意到它。我没有太多地注意确切的规则定义
firebase.database().ref('users').child(firebase.auth().currentUser.uid).update(<your custom data here>);