Firebase - 在对多个节点执行 update/fanout 时设置优先级
Firebase - set priority when doing an update/fanout to several nodes
我正在一次更新中写入多个 parts/nodes 的 Firebase 数据库。这样做时是否可以设置节点的优先级?示例:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": "other value"
])
如果我想同时将节点的优先级设置为“/some/other/node”怎么办?那可能吗?类似于:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": {
value: "other value",
priority: 0 - Date.now()
}
])
你几乎明白了,"magic" 属性 被命名为 .priority
:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": {
value: "other value",
".priority": 0 - Date.now()
}
]
请注意,在 Firebase 中使用优先级的理由并不多。添加一个通常命名的 属性(例如 "reversedTimestamp": 0 - Date.now()
)将实现相同的效果并且更少 hidden/magic.
更新
您似乎想更新节点的值,而不是子节点的命名值。要一次性设置(原始)值和优先级,请使用:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": {
".value": "other value",
".priority": 0 - Date.now()
}
]);
我推荐使用:
".priority": Firebase.ServerValue.TIMESTAMP
它从服务器创建时间戳。它确保我们的数据按照创建时的顺序排列,即使我们的客户位于不同的时区。
我正在一次更新中写入多个 parts/nodes 的 Firebase 数据库。这样做时是否可以设置节点的优先级?示例:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": "other value"
])
如果我想同时将节点的优先级设置为“/some/other/node”怎么办?那可能吗?类似于:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": {
value: "other value",
priority: 0 - Date.now()
}
])
你几乎明白了,"magic" 属性 被命名为 .priority
:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": {
value: "other value",
".priority": 0 - Date.now()
}
]
请注意,在 Firebase 中使用优先级的理由并不多。添加一个通常命名的 属性(例如 "reversedTimestamp": 0 - Date.now()
)将实现相同的效果并且更少 hidden/magic.
更新
您似乎想更新节点的值,而不是子节点的命名值。要一次性设置(原始)值和优先级,请使用:
firebaseRef.update([
"/some/node/": "value",
"/some/other/node": {
".value": "other value",
".priority": 0 - Date.now()
}
]);
我推荐使用:
".priority": Firebase.ServerValue.TIMESTAMP
它从服务器创建时间戳。它确保我们的数据按照创建时的顺序排列,即使我们的客户位于不同的时区。