Angularfire2 - 将项目直接附加到列表
Angularfire2 - append item directly to list
当我 push("number")
使用 angularfire2 进入 firebase 时,数字没有直接附加,而是嵌套在生成的代码中。
Firebase 实时数据库内部:
1)初始代码:
"myList": {
"0": {
"key1": "val1"
},
"1": {
"key2": "val2"
}
}
2) .push({"key3": "val3"})
之后
"myList": {
"0": {
"key1": "val1"
},
"1": {
"key2": "val2"
},
"-generatedcode_": {
"key3": "val3"
}
}
为什么没有直接添加新对象,没有嵌套?
您看到的是预期的行为。 push
function on AngularFire2's FirebaseListObservable
uses the underlying Firebase API's push
,它生成一个唯一的、可排序的键:
The unique key generated by push() are ordered by the current time, so the resulting list of items will be chronologically sorted. The keys are also designed to be unguessable (they contain 72 random bits of entropy).
push
生成一个唯一的密钥,以便多个用户将数据推送到一个位置是安全的。如果这不是问题并且您希望创建一个 "2"
键,您可以这样做,但您不能使用 FirebaseListObservable
来创建。您可以使用底层的 Firebase API:
firebase.database().ref("/myList/2").set({ "key3": "val3" });
或者你可以使用 AngularFire2 FirebaseObjectObservable
:
let o = af.database.object("/myList/2");
o.set({ "key3": "val3" });
其中 af
是您的 AngularFire
实例。
执行 set
后,您应该会看到 FirebaseListObservable
实例已更新以包含新添加的数据。
当我 push("number")
使用 angularfire2 进入 firebase 时,数字没有直接附加,而是嵌套在生成的代码中。
Firebase 实时数据库内部:
1)初始代码:
"myList": {
"0": {
"key1": "val1"
},
"1": {
"key2": "val2"
}
}
2) .push({"key3": "val3"})
"myList": {
"0": {
"key1": "val1"
},
"1": {
"key2": "val2"
},
"-generatedcode_": {
"key3": "val3"
}
}
为什么没有直接添加新对象,没有嵌套?
您看到的是预期的行为。 push
function on AngularFire2's FirebaseListObservable
uses the underlying Firebase API's push
,它生成一个唯一的、可排序的键:
The unique key generated by push() are ordered by the current time, so the resulting list of items will be chronologically sorted. The keys are also designed to be unguessable (they contain 72 random bits of entropy).
push
生成一个唯一的密钥,以便多个用户将数据推送到一个位置是安全的。如果这不是问题并且您希望创建一个 "2"
键,您可以这样做,但您不能使用 FirebaseListObservable
来创建。您可以使用底层的 Firebase API:
firebase.database().ref("/myList/2").set({ "key3": "val3" });
或者你可以使用 AngularFire2 FirebaseObjectObservable
:
let o = af.database.object("/myList/2");
o.set({ "key3": "val3" });
其中 af
是您的 AngularFire
实例。
执行 set
后,您应该会看到 FirebaseListObservable
实例已更新以包含新添加的数据。