gpt4 book ai didi

javascript - 使用 firebase.database.ServerValue.TIMESTAMP 时有没有办法获取实际时间戳?

转载 作者:行者123 更新时间:2023-12-02 22:08:54 27 4
gpt4 key购买 nike

这个问题是关于 javascript 客户端的。

我的代码是这样的:

const localEvents = [];
const fbEvents = firebase.database().ref("myevents");

fbEvents.on("child_added", function(snapshot) {
const e = snapshot.val();
localEvents.push(e);
});

function createEvent(e) {
e.time = firebase.database.ServerValue.TIMESTAMP;
fbEvents.push(e);
}

调用 createEvent({}) 后,我的 localEvents 列表中的条目的 time 值似乎不等于实际值数据库中的条目(客户端猜测时间戳并在实际完成与服务器的往返之前调用 child_added 处理程序)。有没有办法避免这种情况,和/或有没有办法在知道时间实际值时获得回调?

最佳答案

仅使用监听器中的快照来确定时间戳是来自服务器还是本地猜测是不可能的。

您可以做的是使用从 fbEvents.push(e) 返回的 Promise 来确定写入何时真正成功。一个已解决的 promise ,这意味着它肯定是写给 Firebase 的。之后您获得的监听器回调将包含服务器的更新值。

(请注意,使用 Firestore 可以确定文档是否已完全写入服务器。但使用实时数据库则不行。)

关于javascript - 使用 firebase.database.ServerValue.TIMESTAMP 时有没有办法获取实际时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59620985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com