【问题标题】:Firebase set new unique IDFirebase 设置新的唯一 ID
【发布时间】:2017-03-17 20:02:13
【问题描述】:

我是 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
    });
}

数据结构:

如您所见,每次创建新用户时,我都会手动更改newID 变量。

我的问题是我不想每次插入新用户时都更改它。我希望它自动递增或生成一个随机的唯一 ID。

有没有办法在 google firebase 中做到这一点?

【问题讨论】:

    标签: javascript firebase firebase-realtime-database nosql


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      是的,有。 这是来自 Firebase 文档的 Push() 示例的代码。

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-01
        • 1970-01-01
        相关资源
        最近更新 更多