如何使用Firestore Admin Node.js SDK设置服务器时间戳?

12
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 Node.js SDK设置服务器时间戳?

1
看起来你没有初始化 admin SDK。此外,看起来你正在引用客户端 SDK,但这些并不适用于云函数。你只需要 firebase-admin。 - Doug Stevenson
@DougStevenson 谢谢,我确实做了,只是没有发布。 :) - Henry
1个回答

29

谢谢!在你的意见中,更新最后更新日期是通过云函数还是客户端事务来完成比较好? - Henry
2
我觉得这是应该随着客户交易一起更新的内容。 - Hiranya Jayathilaka
1
使用链接已损坏。 - user1114
我目前正在使用这个函数,它返回给我一个空值。 - Andrey Solera
这是文档的更新链接:https://firebase.google.com/docs/reference/js/v8/firebase.firestore.FieldValue - pureth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接