Javascript 我能得到';creationTime';当我在Firestore中创建新文档时(而不是在创建后使用';documentRef.get()';),从而避免读取?
目标:在文档创建过程中获取新Firestore文档的创建时间 首先,我使用相应的数据创建一个新文档Javascript 我能得到';creationTime';当我在Firestore中创建新文档时(而不是在创建后使用';documentRef.get()';),从而避免读取?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,目标:在文档创建过程中获取新Firestore文档的创建时间 首先,我使用相应的数据创建一个新文档newDocumentData,并使用创建时间创建一个字段creationTime,如下所示: const newDocumentRef=wait collectionRef.add({ …新文档数据, creationTime:firebase.firestore.FieldValue.serverTimestamp() }) 然后,我需要creationTime,我会这样做 const doc
newDocumentData
,并使用创建时间创建一个字段creationTime
,如下所示:
const newDocumentRef=wait collectionRef.add({
…新文档数据,
creationTime:firebase.firestore.FieldValue.serverTimestamp()
})
然后,我需要creationTime
,我会这样做
const document=wait newDocumentRef.get()
if(document.exists){
const documentData=document.data()
}
…以最终获取我的documentData.creationTime
我的问题是:有没有办法在第一步使用newDocumentRef
获得creationTime
,从而避免流程的其余部分
谢谢!不,客户端SDK无法“在第一步中获取
creationTime
的值”。返回一个哨兵值,告诉服务器在写入数据中分配服务器生成的时间戳
换句话说,creationTime
的确切值将由服务器计算,如果您想获得该值,您需要查询数据库以获取该值
请注意,另一方面,当您返回(即通过API端点响应)一个包含
createTime
字段的对象时,客户端SDK不可能“在第一步中获取creationTime
的值”.返回一个sentinel值,该值告诉服务器在写入的数据中分配服务器生成的时间戳
换句话说,creationTime
的确切值将由服务器计算,如果您想获得该值,您需要查询数据库以获取该值
请注意,另一方面,当您返回(即通过API端点响应)一个包含
createTime
字段的对象时,Ok。我认为这不是我的情况,我没有使用Firestore REST API…因为服务器返回一个引用(上述代码示例中的newDocumentRef)在第一步中,使用“id”和其他数据(firestore字段、父级等),我考虑在这些数据中使用creationTime…而不是执行ref.get()因为在某些情况下,我只需要创建时间。但没问题,我会像以前那样做。谢谢!我理解,混合使用JS SDK和调用REST API不是很容易的,特别是如果数据库中有安全规则……我刚才提到的事实是,使用REST API我们可以取回文档(带有一些额外的“技术”字段)因为注意到这一点很有意思,IMO.Ok。我认为这不是我的情况,我没有使用Firestore REST API…因为服务器在第一步返回一个引用(上面代码示例中的newDocumentRef),带有“id”和其他数据(Firestore字段、父级等),我想在这些数据中加入creationTime…而不是执行ref.get()因为在某些情况下,我只需要创建时间。但没问题,我会像以前那样做。谢谢!我理解,混合使用JS SDK和调用REST API不是很容易的,特别是如果数据库中有安全规则……我刚才提到的事实是,使用REST API我们可以取回文档(带有一些额外的“技术”字段)因为注意到这一点很有趣,IMO。