Mic*_*ams 6 firebase swift firebase-realtime-database
我一遍又一遍地阅读了Firebase文档,只需要澄清一下.这与我的具体代码无关,就像我对Firebase的理解一般.
我知道.Value每次调用时都会检索所有数据,并继续监视数据库中的更改.并.ChildAdded查找引用子项的变化.是否.ChildAdded还检索所有值的最初?我应该实现这两个.Value和.ChildAdded的相同的路径?如果没有,当我尝试做的时候.ChildAdded,没有任何东西出现,但是当我跑步时,我的.Value所有物品都显示出他们应该的样子.我不想要的是每次更改或添加单个值时都要从数据库中重新获取每个值,因为当我有数千个要获取的项目时,这似乎会导致一些带宽问题.最好的工作流程是getAllItems()用ObserveSingleEventOfType 创建一个.Value函数(),这样它只调用一次,然后有一个重复的函数(getNewItems())除了.ChildAdded和observeEventOfType?
如果你有这个节点
node:{
data1:"data",
data2:{
subdata1:1,
subdata2:2
}
}
Run Code Online (Sandbox Code Playgroud)
ValuewithobserveEventOfType将被第一次调用 + 每次内部内容"node"发生变化时,ValuewithobserveSingleEventOfType将仅被调用一次
Child_Added使用observeEventOfType将被调用两次[ "data1"(它将包含字符串“data”并且"data2"(它将包含一个带有子对象的对象"subdata1"和"subdata2“]
Child_ChangedwithobserveEventOfType每次"data1"或更改都会被调用(每次或更改都会调用"data2"in 的事件,或者如果插入)"data2""subdata1""subdata2""subdata3"
这可以组合使用,但这取决于每个场景......
对于事件类型:
通常当您指向"data1"您使用的最终节点时Value,以及当您位于具有相似节点列表的节点时,例如您使用,和 的"data2"组合child_addedchild_changedchild_removed
对于观察者类型:
如果你想获取特定时刻的值,这很简单;您使用“单一事件观察者”。如果你想随着时间的推移关注价值,你可以使用“事件观察者”
| 归档时间: |
|
| 查看次数: |
2502 次 |
| 最近记录: |