Firebase设置了新的唯一ID

时间:2016-11-04 03:52:42

标签: javascript firebase firebase-realtime-database nosql

我是firebase的新手并且正在练习创建ToDo应用程序。到目前为止,这是我的代码:

代码:

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变量。

我的问题是每次插入新用户时我都不想更改它。我想让它以aumotically增量或生成随机唯一ID。

有没有办法在google firebase中执行此操作?

2 个答案:

答案 0 :(得分:1)

这里有一个项目清单。如果您有这样的列表,则use Firebase's push() method to add new items to it是常见的。这将生成一个按时间顺序排列的密钥,保证在所有客户端中都是唯一的,即使在某些客户端在添加数据时可能暂时丢失了网络连接的情况下也是如此。这些推送ID不像您的数组索引那样可读,但它们是将项添加到列表的推荐方式。

那说;你没有在这里处理任何列表,它是一个用户列表。如果您使用Firebase身份验证来管理用户帐户并处理身份验证,则用户会使用名为uid的内置ID。在这种情况下,将项目存储在其自然键下更有意义,因此在这种情况下uid下。

答案 1 :(得分:1)

是的。 这是一个来自firebase的示例的代码来自fire()。

var messageListRef = firebase.database().ref('message_list');
var newMessageRef = messageListRef.push();
newMessageRef.set({
  'user_id': 'ada',
  'text': 'Example of text.'
});

您可以在此处找到有关其他方法的所有信息: https://firebase.google.com/docs/reference/js/firebase.database.Reference