2017-08-08 72 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太好了。我希望它有幫助。如果它解決了你的解決方案,那麼請將它標記爲已接受,這將有助於其他人蔘考未來...謝謝:) –