我正在尝试将对象保存到Firebase。我可以读取对象及其属性,但无法保存。错误回调结果 - >错误:记录无效;可以确定未定义的键。
var ref = new Firebase("https://myapp.firebaseio.com/myObjects/" + objectKey)
var obj = $firebaseObject(ref);
obj.$loaded().then(function () {
console.log("Some property -> " + obj.testProperty);
obj.testProperty= "someValue";
obj.$save().then(function (ref) {
console.log("Saved !");
}, function (error) {
console.log("Error:", error);
});
});
我无法看到我做错了什么......
此致
答案 0 :(得分:1)
您需要首先获取数组索引,然后保存一些属性。
var ref = new Firebase("https://myapp.firebaseio.com/myObjects/");
var obj = $firebaseArray(ref);
var index = obj.$indexFor(objectKey)
obj.$loaded().then(function () {
console.log("Some property -> " + obj.testProperty);
obj[index].testProperty= "someValue";
obj.$save(index).then(function (ref) {
console.log("Saved !");
}, function (error) {
console.log("Error:", error);
});
});
答案 1 :(得分:0)
$ save不会自动生成密钥,因此您可能已经存储了重复的objectKey。
通常,我们将所有数据存储在唯一标识符下,例如用户ID或随机散列,以避免冲突。或者您可以使用$ add和Firebase自动生成唯一键并将其存储在该位置下。 firebaseURL / Profiles / unique id / object
答案 2 :(得分:0)
我刚遇到这个问题。我的是由一个未定义的函数参数引起的。我不小心包含了我复制和粘贴的另一个服务中的参数,而没有将该服务作为依赖项添加。 e.g:
angular
.module('appTasks', [])
.factory('tasks', [
'$firebaseObject',
'$firebaseArray',
function(users, $firebaseObject, $firebaseArray) { ...my service code... },]);
users
参数意味着来自我未包含在.module
依赖关系数组[]
中的依赖关系,所以它未定义并丢弃了我的整个服务,这给了我错误:“错误:记录无效;可以确定未定义的密钥。”
我有点新手,所以如果我能以某种方式更好地描述它,任何人都可以随时告诉我。 ;)