2016-11-04 25 views
0

我是firebase的新手,正在創建一個ToDo應用程序。到目前爲止,這是我的代碼:Firebase設置新的獨特ID

代碼:

var getUserRef = firebase.database().ref('users'); 

getUserRef.on('child_added', function(data) { 
    var name = data.child("name").val(); 
    var email = data.child("email").val(); 
    $('#loadData').append(`<tr><td>${name}</td><td>${email}</td><td>Edit Remove</td></tr>`); 
}); 

function addUser() { 
    var database = firebase.database(); 
    var name = $('#name').val(); 
    var email = $('#email').val(); 
    var newID = 4; // How can this be incremented? 
    database.ref('users/' + newID).set({ 
     name: name, 
     email: email 
    }); 
} 

數據結構:

enter image description here

正如你所看到的,每次我創建一個新用戶,我手動更改newID變量。

我的問題是我不想每次插入新用戶時都改變它。我希望它會增加或生成一個隨機唯一的ID。

有沒有辦法在谷歌Firebase中做到這一點?

回答

0

這裏有一個項目列表。如果你有這樣一個清單,這是use Firebase's push() method to add new items to it。這將生成一個按時間順序排列的密鑰,即使在某些客戶端在添加數據時可能暫時丟失其網絡連接的情況下,也會保證在所有客戶端中都是唯一的。這些推送ID不像數組索引那樣可讀,但它們是將項目添加到列表的推薦方式。

這就是說;你在這裏沒有處理任何列表,它是一個用戶列表。如果您使用Firebase身份驗證來管理用戶帳戶並處理身份驗證,則用戶會使用名爲uid的身份驗證身份進行身份驗證。在這種情況下,將項目存儲在其自然密鑰下更有意義,因此在這種情況下,它們的uid也是如此。