2016-08-14 59 views
0

我試圖查詢Firebase,如果記錄存在我想要唯一的密鑰,但似乎無法得到它。我的過濾器工作正常,但我不知道對象屬性名稱是什麼,並且似乎無法找到任何有助於解決的問題。 .key()總是返回一個錯誤。這裏是我的目標看起來就像當我回到它查詢Firebase並獲取密鑰

GET /js/init.js 200 5.048 ms - 207 
 
GET /img/logo.png 200 2.376 ms - 2793 
 
{ '-KP8qXgQRaeClqzKX1Lo': { email: '[email protected]' } } 
 
GET /sent 200 7.923 ms - 8110

這裏是我的代碼

firebase.database().ref('/customers').orderByChild("email").equalTo(email).on("value", function(snapshot) { 
 
     console.log(snapshot.val()); 
 
    },function (errorObject) { 
 
     console.log("The read failed: " + errorObject.code); 
 
    });

我需要的關鍵,因爲如果它存在我需要將其用於下一步。

回答

0

firebase.database().ref('customers').orderByChild("email").equalTo(email).on('child_added', function(snapshot) { 
 
     console.log("Customer Key:"+snapshot.key); 
 
    });

3

您可以使用child_added來追蹤新添加的記錄並檢索密鑰。

firebase.database().ref('customers').on('child_added', function(snapshot) { 
    console.log(snapshot.key); //This will print that unique key 
}); 
+0

我已經檢索關鍵是創建後。我需要檢查記錄是否存在以及是否存在,然後再拔下鑰匙。如果它不存在,那麼我創建新的記錄。該電子郵件是我用來過濾我的客戶對象。 – user3183411

+0

謝謝你!你有正確的方向。我能夠得到它。 – user3183411

+0

@ user3183411如果這個答案幫助你,upvote它。如果它解決了你的問題(它似乎已經完成了 - 事實上你仍然需要你自己的查詢似乎與問題無關:你需要調用'snapshot.key'),點擊左邊的複選標記來接受它。 –