2017-10-21 83 views
0

我正在嘗試使用UID獲取電子郵件。這是我的火力數據庫的樣子:如何從firebase中使用UID獲取電子郵件?

click here for picture of database

目前,這是我嘗試,但它似乎並不奏效。

var newEmail = ''; 
var database = app.database().ref('User/'); 
database.orderByChild().equalTo(uid).on('value', function(snapshot) { 
    newEmail = snapshot.val().email; 
}) 

而且,我應該將電子郵件新增爲UID,以便有一個散列卡ID?

回答

0

首先,您的參考路徑不正確;在你的截圖中,你有另一個父節點Uid

var newEmail = ''; 
var database = app.database().ref('User/Uid'); 
... 

其次,您要查詢orderByChild,而沒有經過路徑參數,但你應該使用orderByKey反正。但是,您不需要查詢參考;你知道你想要的值的快照的關鍵,所以你可以通過插入UID創建一個直接路徑。

app.database().ref(`User/Uid/${uid}`).on('value', function(snapshot) { 
    newEmail = snapshot.val().email; 
}); 

最後,您正在收聽的參考;如果您只需要一次該值,則可以按照相同的方式使用.once函數,正如名稱所暗示的那樣,該函數將被觸發一次。

app.database().ref(`User/Uid/${uid}`).once('value', function(snapshot) { 
    newEmail = snapshot.val().email; 
}); 
+1

它是讓我,因爲兩個小時,我嘗試了一切,包括你的版本,但我用NEWEMAIL快照功能之外,以及異步的一部分。我將快照功能中的所有內容都移動了,現在它全部正常工作。 – Daven99

相關問題