node.js - 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};
解决方案
我想问题是您没有正确导入 db 或者您可能忘记在调用之前分配 db 变量。
推荐阅读
- python - 在 python 3 上手动排序列表
- macos - NSSharingService performWithItems 挂起
- wso2 - 如何在 siddhi CEP 中放置到达和摄取时间戳
- c++ - 字符串和向量的 shrink_to_fit 实现不同?
- rust - Rust 宏可以同时设置一个变量并返回一个值吗?
- c++ - c++类成员调用错误C3861
- html - HTML tile 中元素的响应式定位
- angular - Angular 无法读取组件/表单中未定义的属性
- php - 无法获取 PHP 查询以返回要制成数组的资源,我无权访问连接数据
- python-3.x - 不和谐.py | 如何让机器人根据你输入的内容说话?