node.js - Firebase 函数 db.doc 不是函数,当我尝试使用文档创建新集合时出错
问题描述
嗨,我正在关注 youtube 教程 ( https://www.youtube.com/watch?v=m_u6P5k0vP0&t ) 进行一些工作,当我尝试使用新文档创建新集合时遇到此错误doc 是在 like 集合上创建的
firebase [1] 上有错误的图像:https ://i.stack.imgur.com/sixMc.png
该功能应该在有人喜欢帖子时创建带有文档的通知集合。
-------------admin.js--------------
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
module.exports = { admin ,db};
------------index.js---------------
const db = require('./util/admin');
exports.createNotificationOnLike = functions
.firestore.document('likes/{id}')
.onCreate((snapshot) => {
return db
.doc(`/screams/${snapshot.data().screamId}`)
.get()
.then((doc) => {
if (
doc.exists &&
doc.data().userHandle !== snapshot.data().userHandle
) {
return db.doc(`/notifications/${snapshot.id}`).set({
createdAt: new Date().toISOString(),
recipient: doc.data().userHandle,
sender: snapshot.data().userHandle,
type: 'like',
read: false,
screamId: doc.id
});
}
})
.catch((err) => console.error(err));
});
解决方案
您要求 admin.js 的语法不正确。它正在导出一个具有两个属性的对象,而不仅仅是db
,因此您需要说您期望一个具有名为 的属性的对象db
。
const [ db } = require('./util/admin');
推荐阅读
- python - 在这种情况下 self 会是什么?— 文档中没有任何地方说明 self 应该是什么
- python - 比较 Pandas Dataframe 中的多行值
- c# - TLS RSA 解密失败并显示“参数不正确”
- r - 逻辑回归,如果我们需要查看目标变量中的 0 怎么办?
- swift - 如何在明暗模式之间更改我的应用程序
- python-3.x - 如何使用 discord.py 在欢迎消息中包含公会名称
- java - spark master 无法处理并发作业提交(AWS EMR)
- arrays - 紧急运行时错误索引超出范围 [3],长度为 3
- python - 查找熊猫数据框中两行字符串的差异
- hidden-markov-models - 了解如何计算马尔可夫链中的去除效果