Firebase - 在对多个节点执行更新/扇出时设置优先级

Firebase - set priority when doing an update/fanout to several nodes

本文关键字:更新 扇出 优先级 设置 执行 节点 Firebase      更新时间:2023-09-26

我在一次更新中写入了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() )将完成相同的任务,并且隐藏/魔法较少。

更新

您似乎要更新节点的值,而不是名为 value 的子节点。要一次性设置(基元)值和优先级,请使用:

firebaseRef.update([
    "/some/node/": "value",
    "/some/other/node": {
        ".value": "other value",
        ".priority":  0 - Date.now()
    }
]);

我建议使用:

".priority": Firebase.ServerValue.TIMESTAMP

它从服务器创建时间戳。它确保我们的数据按照其创建顺序排列,即使我们的客户位于不同的时区。