2017-08-08 74 views
0
"-Kqpdfjp2Q9cAuqZHY5w" : { 
    "email" : "[email protected]", 
    "gamerTag" : "ok" 
    }, 
     "-Kqpdx7Xpwht-E1K4in0" : { 
    "email" : "[email protected]", 
    "gamerTag" : "ok" 
    } 

我试图问的问题是如果有一种方法可以搜索邮件是否被拍摄。我尝试了几种方法,但他们似乎没有工作。如果有人能够解释我做错了什么,那将会有所帮助。我总是想从我的错误中学习如何在js firebase中进行搜索?

一个方法:

goalRef.once('value', function(snapshot) { 
    if (snapshot.hasChild("[email protected]")) { 
     alert('exists'); 
    }else 
    { 
     alert('maybe'); 
    } 
}); 

第二种方法:

let human = goalRef.orderByChild("email").equalTo("[email protected]"); 
    human.update({ 
     "email": "[email protected]" 
    }) 

第二种方法是更新,但不工作或者。

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

见https://stackoverflow.com/questions/44961981/retrieve-and-check-是否-A-特定的用户输入,电子邮件是存在的功能于火力/ 44962311#44962311。 Android的具体答案是,但所有技术的方法都是一样的。 –

回答

0

至于你的问题建议您要检查,如果电子邮件地址存在与否。

你可以去第二种方法如因为在第一种方法,你需要在所有的值迭代为你的用户群增长会比第一个更有效率,

为此去第二个方法Firebase将负责将价值搜索到DatabaseReference

firebaseDB.ref("human") 
      .orderByChild("email") 
      .equalTo("[email protected]") 
      .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 
       } 
      }); 

注意:不要忘记在电子邮件字段添加索引更高效的搜索

感谢

+0

谢谢你,也感谢你的解释。欢呼:) –

+0

@NiralPatel太好了。我希望它有帮助。如果它解决了你的解决方案,那么请将它标记为已接受,这将有助于其他人参考未来...谢谢:) –