使用 AngularFire 从刚刚通过 $add 添加的元素中获取密钥
Get the key from the element just added via $add using AngularFire
我将 AngularFire 与 Firebase 一起使用,我想获取我刚刚通过 $add()
方法添加的元素的键。使用 "vanilla" Firebase 有记录的方法,请参阅 "Getting the Unique ID Generated by push()" here。不过,它似乎不适用于 AngularFire 的等效 $id
。
var ref = $firebase(firebaseData.ref()).$asArray();
var newItem = ref.$add({fruit: "apple", color: "red"});
var itemId = newItem.$id;
// Do stuff with itemID...
newItem
已使用新密钥(例如 -Jf-06c0QX_vMMNL3Aek
)成功添加到 Firebase,但 itemId
returns 未定义。
有办法吗?
来自AngularFire documentation for $add:
var list = $firebase(ref).$asArray();
list.$add({ foo: "bar" }).then(function(ref) {
var id = ref.key();
console.log("added record with id " + id);
list.$indexFor(id); // returns location in the array
});
如果您使用的是旧版本的 AngularFire,该方法可能仍会被调用 name
,因此您需要 var id = ref.name();
.
现在push
returns一个Promise
,这样就更容易拿到钥匙了:
constructor(private afDb: AngularFireDatabase) { }
my_items$ : FirebaseListObservable<Item[]> = this.afDb.list('my-node');
this.my_items$.push(this.item).then((item) => {
console.log(item.key);
});
我将 AngularFire 与 Firebase 一起使用,我想获取我刚刚通过 $add()
方法添加的元素的键。使用 "vanilla" Firebase 有记录的方法,请参阅 "Getting the Unique ID Generated by push()" here。不过,它似乎不适用于 AngularFire 的等效 $id
。
var ref = $firebase(firebaseData.ref()).$asArray();
var newItem = ref.$add({fruit: "apple", color: "red"});
var itemId = newItem.$id;
// Do stuff with itemID...
newItem
已使用新密钥(例如 -Jf-06c0QX_vMMNL3Aek
)成功添加到 Firebase,但 itemId
returns 未定义。
有办法吗?
来自AngularFire documentation for $add:
var list = $firebase(ref).$asArray();
list.$add({ foo: "bar" }).then(function(ref) {
var id = ref.key();
console.log("added record with id " + id);
list.$indexFor(id); // returns location in the array
});
如果您使用的是旧版本的 AngularFire,该方法可能仍会被调用 name
,因此您需要 var id = ref.name();
.
现在push
returns一个Promise
,这样就更容易拿到钥匙了:
constructor(private afDb: AngularFireDatabase) { }
my_items$ : FirebaseListObservable<Item[]> = this.afDb.list('my-node');
this.my_items$.push(this.item).then((item) => {
console.log(item.key);
});