我有一个函数可以在我的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开始的,所以我有一个学习曲线。提前道歉。
答案 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"问题,它现在有效。也许我可以在每个数据集中解决这个问题。