NodeJS 从firebase触发器函数复制一个firestore文档到另一个集合

i2byvkas  于 2023-05-17  发布在  Node.js
关注(0)|答案(1)|浏览(100)

我想将我的文档同步到基于firebase trigger function的另一个集合

exports.foo = functions
  .region("foo")
  .firestore.document("foo")
  .onWrite((events, context) => {
    return new Promise((resolve, reject) => {
      if (events.after.exists) {
        // on create or update
        admin
          .firestore().doc("newFoo")
          .set(events.after.data)
          .then(() => { resolve(true); })
          .catch((ex) => { reject(ex); });
      } else{
        // on delete
        admin
          .firestore()
          .doc("newFoo")
          .delete()
          .then(() => { resolve(true); })
          .catch((ex) => { reject(ex); });
      }
    });
  });

但我得到了以下错误,当我试图手动编辑我的文件在firestore
错误:参数“data”的值不是有效的Firestore文档。输入不是普通的JavaScript对象。
为什么我得到错误?正如我所检查的,events.after.data也返回FirebaseFirestore.DocumentData,这是doc.set()的正确数据类型

mwg9r5ms

mwg9r5ms1#

这一行.set(events.after.data)应该是.set(events.after.data()),因为data是一个方法而不是属性。

相关问题