首页 > 解决方案 > Firebase 函数错误,“db.batch() 不是函数”

问题描述

我一直在使用 Firebase 函数时遇到问题,当我部署此函数并尝试更改用户图像时,我在 firebase 函数日志中收到一条错误消息,显示“错误,db.batch 不是函数”。

exports.onUserImageChange  = functions
    .firestore.document('/users/{userId}')
    .onUpdate((change) => {
      console.log(change.before.data());
      console.log(change.after.data());
      if (change.before.data().imageUrl !== change.after.data().imageUrl) {
        console.log('image has changed');
        var batch = db.batch();
        return db
          .collection('screams')
          .where('userHandle', '==', change.before.data().handle)
          .get()
          .then((data) => {
            data.forEach((doc) => {
              const scream = db.doc(`/screams/${doc.id}`);
              batch.update(scream, { userImage: change.after.data().imageUrl });
            });
            return batch.commit();
          });
      } else return true;
});

这是我的数据库导出:

const admin = require('firebase-admin')

admin.initializeApp();

const db = admin.firestore();

module.exports = { admin, db};

标签: node.jsfirebasegoogle-cloud-firestoregoogle-cloud-functions

解决方案


我想问题是您没有正确导入 db 或者您可能忘记在调用之前分配 db 变量。


推荐阅读