我刚开始使用Firebase云功能,我来到了这个源代码https://github.com/AngularFirebase/93-fcm-ionic-demo/blob/master/functions/src/index.ts。 我已经下载了项目所需的所有依赖项,但是在使用event.data.data()时我一直收到错误。这是我的代码:
import * as admin from 'firebase-admin';
admin.initializeApp(functions.config().firebase);
exports.newSubscriberNotification = functions.firestore
.document('subscribers/{subscriptionId}')
.onCreate(async event => {
const data = event.data.data();
const userId = data.userId
const subscriber = data.subscriberId
// Notification content
const payload = {
notification: {
title: 'New Subscriber',
body: `${subscriber} is following your content!`,
}
}
// ref to the parent document
const db = admin.firestore()
const devicesRef = db.collection('devices').where('userId', '==', userId)
// get users tokens and send notifications
const devices = await devicesRef.get()
const tokens = []
devices.forEach(result => {
const token = result.data().token;
tokens.push( token )
})
return admin.messaging().sendToDevice(tokens, payload)
错误应该在const data = event.data.data()上。我完全相信这是使用它的正确方法,但我不能因此而部署我的功能。我已经检查过,我在两个package.json文件上都有最新版本的云函数(我的根项目文件夹中的那个和函数文件夹上的那个)。有人知道可能导致这个问题的原因吗?非常感谢您的帮助。
答案 0 :(得分:1)
云功能已更新,更新带来了许多变化。
因此,您需要将以下内容更改为:
$(document).ready(function() {
$("#a-stop").click(function(e){
$("#a-start-container").html("<a id='a-start' href=''><i class='fa fa-fw fa-play inner-circle-color'></a>");
$("#a-stop-container").html("<i class='fa fa-fw fa-stop inner-circle-color-off'>");
})
});
此处提供更多信息:
https://firebase.google.com/docs/functions/beta-v1-diff#cloud-firestore
答案 1 :(得分:0)
我有同样的问题。一切都是正确的,但仍无法正常工作,部署时出现错误。我通过在“ compilerOptions”上的tsconfig.json中使用"strict": false,
来解决。我希望这对某人有帮助。
答案 2 :(得分:0)
代码示例:
const user = userDoc.data();
if (user) {
const { firstName, lastName } = user;
}
您需要检查您的值不是undefined