Database 在Firebase云函数中,是否可以检索admin.firestore.FieldValue.serverTimestamp()的结果?

Database 在Firebase云函数中,是否可以检索admin.firestore.FieldValue.serverTimestamp()的结果?,database,firebase,google-cloud-firestore,Database,Firebase,Google Cloud Firestore,在Firebase云函数中,是否可以检索admin.firestore.FieldValue.serverTimestamp()的结果,而不直接将请求插入到调用set()或update() 当我将文档写入集合时,我可以将当前服务器时间戳设置为如下值之一,而不会出现问题: admin.firestore().collection(`/entries`).doc().set( foo:bar, date: admin.firestore.FieldValue.serverTimestamp()

在Firebase云函数中,是否可以检索
admin.firestore.FieldValue.serverTimestamp()
的结果,而不直接将请求插入到调用
set()
update()

当我将文档写入集合时,我可以将当前服务器时间戳设置为如下值之一,而不会出现问题:

admin.firestore().collection(`/entries`).doc().set(
 foo:bar,
 date: admin.firestore.FieldValue.serverTimestamp()
);
但是,一旦写入Firestore完成,我需要将相同的数据写入实时数据库中的某个部分

是否可以在写入数据库之前获取admin.firestore.FieldValue.serverTimestamp()的结果

我曾尝试将其设置为这样的常数,但它不起作用:

const postDate = admin.firestore.FieldValue.serverTimestamp();
在任何人响应之前,我很清楚我可以使用
admin.database.ServerValue.timestamp
检索实时数据库的时间戳,但是,这不是我想要做的。如上所述,我需要访问写入Firestore文档的结果日期


如果这是不可能的,那么仅仅在my cloud函数中使用javascript来获取UTC日期作为当前日期在重构中有什么害处吗?如果我所有的数据都是用同样的方法写入数据库的,那么有什么害处呢?或者在云函数中生成一致的日期是否存在问题?

如果不先将服务器时间戳写入字段,则无法使用Firestore获取服务器时间戳。
admin.firestore.FieldValue.serverTimestamp()
的值是一个sentinel标记,只有在firestore将其解释为字段值时才有意义


如果您愿意对客户端和Firestore之间的往返延迟进行假设,那么您可能可以在先编写一个后尝试猜测其值,但这可能不会按您希望的方式工作。

如果不先将Firestore写入字段,则无法使用Firestore获取服务器时间戳。
admin.firestore.FieldValue.serverTimestamp()
的值是一个sentinel标记,只有在firestore将其解释为字段值时才有意义


如果您愿意对客户和Firestore之间的往返延迟进行假设,那么您可能可以先编写一个,然后尝试猜测它的值,但这可能不会按您希望的方式工作。

对,明白。在云函数中使用UTC javascript日期怎么样?作为替代,我更新了我的问题以询问这一点。我知道,出于所有明显的原因,这是一个无法启动的客户端,但是在云函数中呢?或者更好的是,也许我应该依赖一个云函数,它只监听对我的集合的写入,在该点检索结果日期,然后将其写入我的实时数据库。我肯定会有延迟,但至少日期会匹配。对,明白。在云函数中使用UTC javascript日期怎么样?作为替代,我更新了我的问题以询问这一点。我知道,出于所有明显的原因,这是一个无法启动的客户端,但是在云函数中呢?或者更好的是,也许我应该依赖一个云函数,它只监听对我的集合的写入,在该点检索结果日期,然后将其写入我的实时数据库。我肯定会有延迟,但至少日期会匹配。