繁体   English   中英

如何检查Firebase数据库中是否存在项目? -react-native-firebase

[英]How to check Item exists in Firebase Database? - react-native-firebase

目前,我正在为项目使用https://github.com/invertase/react-native-firebase 我有一个用于用户的自定义数据库,我想通过电子邮件检查该用户是否存在。

这是数据库的屏幕截图:

在此处输入图片说明

这是通用的Firebase方法,但您可能需要重新配置该方法以适合您的数据结构。 如果您想了解更多信息,请参考官方文档

firebase.database()
    .ref(`/users`)
    .orderByChild("email")
    .equalTo(email)
    .once("value")
    .then(snapshot => {
        if (snapshot.val()) {
            // data exist, do something else
        }
    })

您也可以使用hasChild方法查询注册状态。 引用您的根路径并使用.once查询,并检查返回的结果。

export function checkUserExist(email) {
  return(dispatch) => {
    firebase.database().ref(`/ExistingUser/`)
      .once('value', snapshot => {
        if(snapshot.hasChild(email)) {
          dispatch({
            type: FIREBASE_USER_EXISTED            
          });
        } else {
          dispatch({
            type: FIREBASE_USER_NOT_EXISTED,
          });
        }
      });
  }
}

另一个首选方法是使用Firebase提供的fetchProvidersForEmail方法。 它会收到一封电子邮件,并返回一个承诺,该承诺将解决与该电子邮件链接的提供者列表(如果已注册)的信息, 请参阅此处

是否有充分的理由将用户凭证存储在您的数据库中? 在我的日常实践中,出于安全目的,我将使用Firebase提供的createUserWithEmailAndPassword请参阅此处 只要确保正确定义了规则即可防止未经授权的访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM