如何搜索react js firebase?

时间:2017-08-08 03:56:11

标签: javascript reactjs firebase firebase-realtime-database

  "-Kqpdfjp2Q9cAuqZHY5w" : {
    "email" : "test@apple.com",
    "gamerTag" : "ok"
    },
      "-Kqpdx7Xpwht-E1K4in0" : {
    "email" : "Human@human.com",
    "gamerTag" : "ok"
  }

我想问的问题是,是否有办法搜索是否收到了电子邮件。我尝试了几种方法但它们似乎没有用。如果有人能解释我做错了什么,那将会有所帮助。我总是想从错误中吸取教训

一种方法:

goalRef.once('value', function(snapshot) {
    if (snapshot.hasChild("test@apple.com")) {
        alert('exists');
    }else
    {
        alert('maybe');
    }
});

第二种方法:

    let human = goalRef.orderByChild("email").equalTo("test@apple.com");
    human.update({
        "email": "mat@gmail.com"
    })

第二种方法是更新,但这也不起作用。

goalRef = firebase.database().ref('human');

1 个答案:

答案 0 :(得分:0)

正如您的问题所示,您想检查电子邮件地址是否存在。

你可以选择第二种方法,因为它比第一种方法效率更高,因为在第一种方法中,你需要在用户群增长时迭代所有值,

因此采用第二种方法,Firebase将负责将值搜索到DatabaseReference

firebaseDB.ref("human")
            .orderByChild("email")
            .equalTo("test@apple.com")
            .on('value', function (snapshot) {
                if (snapshot.val() === null) {
                    console.log('Email is not present');
                }else{
                    console.log('Email is present');
                    var key = snapshot.key;
                    var childData = snapshot.val();
                    //Your Code goes Here
                }
            });

注意:不要忘记在电子邮件字段中添加索引以便更有效地搜索

由于