在创建新用户之前检查用户是否存在-Firebase Auth

时间:2019-10-22 16:58:44

标签: javascript firebase firebase-realtime-database firebase-authentication

我有firebase auth,其中允许匿名登录。当用户到达首页时,我们检查此新创建的user.uid是否存在于firebase auth中。如果不是,则使用该uid创建一个新用户。

firebase.database().ref()
.child('users')
.child(user.user.uid)
.once('value', snapshot => {
    if (snapshot.val() === null) {
        firebase
            .database()
            .ref()
            .child(`user/${user.user.uid}/info`)
            .set({
                uid: user.user.uid
            })
            .then(() => user)
            .catch(error => {
                console.log(error)
            })
    }
})

但是,我一直收到此错误:似乎不允许该应用程序检查firebase.auth中的现有帮助

Error: permission_denied at /users/ONOfaUBN88gMpG9iVJU1dLvVvbN2: Client doesn't have permission to access the desired data.

我该如何最好地返工?现在我包括了快照检查,因为我也从firebase收到了类似的错误消息,该错误消息基本上说用户已经存在并且无法重置。

我将规则设置为:

{
  "rules": {
    ".read": false,
    ".write": false
    }
}

这些现在能满足我的目的吗

{
  "rules": {
      "users": {
        "$uid": {
          ".read": "$uid === auth.uid",
          ".write": "$uid === auth.uid"
        }
    }
  }
}


0 个答案:

没有答案
相关问题