Mar*_*n07 0 json firebase firebase-realtime-database angularfire2
当我push("number")进入firebase时,使用angularfire2,数字不会直接附加,而是嵌套在生成的代码中.
Firebase实时数据库内部:
1)初始代码:
"myList": {
"0": {
"key1": "val1"
},
"1": {
"key2": "val2"
}
}
Run Code Online (Sandbox Code Playgroud)
2)之后 .push({"key3": "val3"})
"myList": {
"0": {
"key1": "val1"
},
"1": {
"key2": "val2"
},
"-generatedcode_": {
"key3": "val3"
}
}
Run Code Online (Sandbox Code Playgroud)
为什么没有嵌套时没有直接添加新对象?
你所看到的是预期的行为.pushAngularFire2上的函数FirebaseListObservable使用底层的Firebase API push,它生成一个唯一的可排序键:
push()生成的唯一键按当前时间排序,因此生成的项列表将按时间顺序排序.密钥也被设计为不可思议的(它们包含72个随机的熵).
push生成一个唯一的密钥,以便多个用户将数据推送到一个位置是安全的.如果这不是一个问题,你想创建一个"2"密钥,你可以这样做,但你不能使用FirebaseListObservable.您可以使用基础Firebase API:
firebase.database().ref("/myList/2").set({ "key3": "val3" });
Run Code Online (Sandbox Code Playgroud)
或者您可以使用AngularFire2 FirebaseObjectObservable:
let o = af.database.object("/myList/2");
o.set({ "key3": "val3" });
Run Code Online (Sandbox Code Playgroud)
af你的AngularFire实例在哪里
执行之后set,您应该看到您的FirebaseListObservable实例已更新以包含新添加的数据.
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |