Firebase和Angular JS中的随机ID

时间:2015-05-30 22:44:36

标签: javascript angularjs firebase

我有一个函数可以在我的firebase数据库中创建一个带有秘密的客户端编号。

    vm.createNumbers = function ($scope, $vm, $window) {
        var clientNumbers = $firebaseObject(ref.child('clientNumbers'));
        var id = Math.floor( 100 * Math.random() );
        clientNumbers.$loaded().then(function () {
            var newNumber = {
                id: {
                    number : vm.number,
                    secret : vm.secret,
                    assigned : false,
                }
            }

            clientNumbers.$ref().set(newNumber);
        })
    }

我正在尝试使用var id作为firebase数据库的密钥持有者。现在,它将其存储为id而不是098678,因此我的结构如下所示:

clientNumbers {
  id: {
     number: 20398973802387980,
     secret: 24987987,
     assigned: false
  }
}

你可以想象,当我去创建另一个插入时,现有的插入会更新而不是创建一个新的插入,因为“primary id”与firebase中已有的相同。

最好,我想获取最后一个插入的“id”并将其增加一个,以便下次插入。

我是从Codeigniter,PHP和MySQL开始的,所以我有一个学习曲线。提前道歉。

1 个答案:

答案 0 :(得分:2)

来自Firebase文档....

有关保存数据的方法。

  

set( )将数据写入或替换为已定义的路径,例如messages / users / username

     

push( )添加到数据库中的数据列表。每次拨打push()时,您的数据库都会生成一个唯一ID,例如messages / users / unique-id / username

我使用set()方式,这不是我想要完成的正确方法。

我改变了

clientNumbers.$ref().set(newNumber);

clientNumbers.$ref().push(newNumber);

虽然这并没有解决我的"增量ID"问题,它现在有效。也许我可以在每个数据集中解决这个问题。