在我的索引中有以下函数。ts文件:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp(functions.config().firebase);
const db = admin.firestore();
const fcm = admin.messaging();
export const sendToDevice = functions.firestore
.document('orders/{orderId}')
.onCreate(async snapshot => {
print("aa")
console.log("osakosak");
const order = snapshot.data();
const querySnapshot = await db
.collection('users')
.doc(order.ustaID)
.collection('tokens')
.get();
const tokens = querySnapshot.docs.map(snap => snap.id);
const payload: admin.messaging.MessagingPayload = {
notification: {
title: 'New Order!',
body: `you sold a ${order.day} for ${order.time}`,
click_action: 'FLUTTER_NOTIFICATION_CLICK'
}
};
return fcm.sendToDevice(tokens, payload);
});
但是,当新文档被添加到订单集合中时,这不会被触发。甚至print和console.log都不起作用。我试着把打印和控制台日志放在导出之前,它仍然没有启动。
根据您的评论("这取决于pubspec.yaml
中的cloud_firestore
"),您似乎没有正确部署您的云功能。
事实上,Cloud Functions完全独立于您的Flutter应用程序(您的前端)。它是一个后端服务. 您应该使用Firebase CLI部署它,请参阅文档。请注意,代码应在Firebase项目中,而不是在您的Flutter项目中。