如何使用firestore admin nodejs sdk设置服务器时间戳?
Posted
技术标签:
【中文标题】如何使用firestore admin nodejs sdk设置服务器时间戳?【英文标题】:how to set server time stamp with firestore admin nodejs sdk? 【发布时间】:2018-06-10 23:18:32 【问题描述】:const firebase = require('@firebase/app').default;
require('@firebase/firestore')
const admin = require('firebase-admin')
const functions = require('firebase-functions')
// initialize the admin SDK...
exports.setUpdatedDate = functions.firestore.document('/foos/fooId/bars/barId')
.onCreate(event =>
admin.firestore().collection('foos').doc( event.params.fooId )
.set(
updatedDate: firebase.firestore.FieldValue.serverTimestamp()
, merge:true)
)
运行上面的函数shell,我得到了:
Cannot encode type ([object Object]) to a Firestore Value
at Function.encodeValue (...\functions\node_modules\@google-cloud\firestore\src\document.js:772:11
那么如何使用 firestore admin nodejs sdk 设置服务器时间戳?
【问题讨论】:
您似乎没有初始化管理 SDK。此外,您似乎需要客户端 SDK。这些不适用于 Cloud Functions。你只需要firebase-admin。 @DougStevenson thx,我确实做到了,只是没有发布。 :) 【参考方案1】:您可以使用admin.firestore.FieldValue.serverTimestamp()
。
API 文档:https://firebase.google.com/docs/reference/admin/node/admin.firestore.FieldValue 用法示例:https://github.com/firebase/firebase-admin-node/blob/master/test/integration/firestore.js#L61
【讨论】:
谢谢!您认为更新最后更新日期最好通过云功能或客户端事务完成? 我觉得这是应该随着客户事务更新的东西。 使用链接失效 我目前正在使用这个函数,它返回一个空值以上是关于如何使用firestore admin nodejs sdk设置服务器时间戳?的主要内容,如果未能解决你的问题,请参考以下文章
在 Firestore 上的 Document (NodeJS) 中设置 DocumentReference
如何使用firebase-admin在firestore中将日期保存为时间戳?
如何将 firebase 的 firestore/admin sdk 与 next.js 一起使用
导出 Firestore 备份数据的云功能。使用 firebase-admin 或 @google-cloud/firestore?