- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚好遇到这 block firebase doc在 firebase.firestore.SnapshotOptions
上:
serverTimestamps
serverTimestamps: "estimate" | "previous" | "none"
If set, controls the return value for server timestamps that have not yet been set to their final value.By specifying
'estimate'
, pending server timestamps return an estimate based on the local clock. This estimate will differ from the final value and cause these values to change once the server result becomes available.By specifying
'previous'
, pending timestamps will be ignored and return their previous value instead.If omitted or set to
'none'
,null
will be returned by default until the server value becomes available.
这让我很担心,因为我正在尝试将客户端生成的日期转换为服务器时间戳。我认为,每当我读取使用 serverTimestamp()
保存的文档快照时,我都可以 100% 确定在该点设置日期。但从上面的文档来看,我似乎无法做出这样的假设。
作为一般性问题:
在什么情况下我可以找到尚未设置的serverTimestamp
?是否存在可能成为问题的常见用例?
具体我想了解一下这两种情况:
案例 1
createdAt: firebase.firestore.FieldValue.serveTimestamp()
onWrite | onUpdate
触发该特定集合。当该函数运行时,是否有可能 createdAt: serverTimestamp
尚未设置?
案例 2
createdAt: firebase.firestore.FieldValue.serveTimestamp()
doc
的监听器。当该监听器使用新的 docSnapshot
数据触发时,是否有可能 createdAt: serverTimestamp
尚未设置?
更新
刚找到这篇文章The secrets of Firestore’s FieldValue.serverTimestamp()
似乎对于CASE 2,这只会发生在本地写入中。鉴于这一事实,是否可以安全地假设在案例 1 上,由于它不是本地写入,它永远不会发生在正在监听 firestore 触发器的云功能上?
Firebase docs on Local Changes
Local writes in your app will invoke snapshot listeners immediately. This is because of an important feature called "latency compensation." When you perform a write, your listeners will be notified with the new data before the data is sent to the backend.
Retrieved documents have a metadata.hasPendingWrites property that indicates whether the document has local changes that haven't been written to the backend yet. You can use this property to determine the source of events received by your snapshot listener.
最佳答案
When that listener fires with the new docSnapshot data, is there a possibility that the createdAt: serverTimestamp has not been set yet?
这正是您所期望的。由于服务器时间戳只能在服务器上设置,因此您必须等待来自服务器的快照。您在写入时从事件监听器获得的第一个快照将不包含最终时间戳值。
关于firebase - 在哪些情况下我可以获得带有尚未设置的 Firestore serverTimestamp 的 docSnapshot.data()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64134437/
根据Firebase文档,我们不应该使用增量值,因为它可能会导致热点。我有多个子集合,并且我只对对子集合进行排序感兴趣,所以我希望将服务器端时间戳与文档ID(它表示我的子集合所在的文档)连接在一起。但
我有以下功能 Future _updateDocument(String path, {Map data}) async { final Map stampedData = {'updat
有没有办法在不使用云函数的情况下将时间添加到服务器时间戳? 我想要的是从面板更新时间戳,并让用户端检查时间戳是否大于当前时间。我还希望面板用户能够设置要添加的时间量,因此在用户端执行逻辑不是最佳解决方
在我的 Typescript 应用程序代码中,我定义了一个模型,该模型使用 Firestore 在服务器上生成的时间戳。当文档从数据库返回时,该字段将是一个 ISO 字符串。我想在我的整个应用程序中使
火力基地服务器时间戳 例如,对由firebase服务器生成的每个国家/地区应用相同的时间 session ...如果应用程序受一个国家/地区控制,那么服务器是否会应用该国家/地区的时间戳? 最佳答案
我正在 firestore 中构建一个实时聊天应用程序,我目前在读回消息时间戳时遇到问题。我正在使用 onSnapshot 监听器从我的消息集合中获取更新,但是我发现我在最新的时间戳上收到未定义的错误
我的 Firestore 数据库中有一个时间戳字段,格式如下:Quarta-feira, 11 de Outubro de 2017 às 10:24:54 GMT-03:00 定义为:map.p
我正在学习教程,代码中使用 firebase.firestore.FieldValue.serverTimestamp() 将 timestamp 属性设置为服务器时间戳。 import fireba
async createUser(uid: string, email: string) { await this.afs.doc(FirestoreDbConstant.USER_PROFI
我正在使用 TypeScript 在 Firebase 中为我的文档定义数据模型。创建文档时,createdOn字段将是服务器时间戳,否则它是一个日期。例如... export interface P
我需要有关此 Firebase 规则的帮助,我有一个存储时间戳的 child 而且我只需要在服务器时间戳小于存储在 Date->date 子节点上的时间戳时允许写入 firebase 的另一个位置。我
我想在 google cloud firestore 中创建一个查询来检索过去 10 小时内创建的数据,但我想使用服务器日期作为帐户的基础。 类似于: this.afs.collection("pos
我的 flutter 应用程序需要获取当前时间,我已经为此尝试了几个包,例如:truetime、ntptime、datetime 的 datetime、cloud firestore 的 Timest
刚好遇到这 block firebase doc在 firebase.firestore.SnapshotOptions 上: serverTimestamps serverTimestamps: "
我正在从 Cloud Firestore 读取一些数据(消息),并且在文档中我有一个 timestamp时间字段。 我有一个流: Stream get chats { return chatC
我找不到从 firestore 获取 serverTimestamp 的方法。无论是使用 firestore 本身,还是使用 angularfire。 我发现很多 github 问题都有解决方案,但不
我使用 Firestore 作为数据库,现在我想在用户注册时存储服务器时间戳。 来自 Firestore 文档 Map updates = new HashMap<>(); updates.p
如何检查客户端用户是否仅使用 firebase.firestore.FieldValue.serverTimestamp() 创建文档? 我有以下内容: allow create: if reques
这是我的模型类: import com.google.firebase.firestore.ServerTimestamp; import java.util.Date; public
firestore.FieldValue.serverTimestamp 与使用 Date.now()(从中央服务器)之间是否存在任何性能或功能差异? 最佳答案 如果您将客户端的 Date.now()
我是一名优秀的程序员,十分优秀!