无法向用户发送通知

时间:2021-02-16 21:18:21

标签: firebase flutter notifications google-cloud-functions firebase-cloud-messaging

我无法向用户发送通知。当我编写这段代码时,完全没有问题。但是我在那里手动写了令牌。

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp();
const fcm = admin.messaging();

exports.senddevices = functions.firestore
  .document("chats/{chatID}/messages/{messageID}")
  .onCreate(async (snapshot, context) => {
    const msg = snapshot.get("msg");
    const sendBy = snapshot.get("sendBy");
    const userToken = 'doXfzpEATv2Bo_ZK9U1FHb:APA91bEUsqRWukp9mlSSpVxL1Dqqqki9ETRs63XlUfkj18h8d3ObKsjyzFwTT9MWLRVOR3ZcFHufVEY_nzsuylUNlP5bO52rU5seROC49meJZ1rANcYMRfC3wXPC2RbW6WpE0qnDTBuV';

    const payload = {
      notification: {
        title: "from " + sendBy,
        body: "subject " + msg,
        sound: "default",
      },
    };

    return fcm.sendToDevice(userToken, payload);
  });

但是当我尝试此代码时,我无法发送通知。 index.js 文件是这样的:

import * as functions from 'firebase-functions';
    import * as admin from 'firebase-admin';
    
    admin.initializeApp();
    const db = admin.firestore();
    
    exports.sendNotifications = functions.firestore
      .document('chats/{chatID}/messages/{messageID}')
      .onCreate(async (snapshot, context) => {
        const { msg, sendBy } = snapshot.data();
    
        const { chatID } = context.params;
    
        const chatCol = await db
          .collection('chats')
          .doc(chatID)
          .get();
    
        const members: string[] = chatCol.get('members');
    
        members
          .filter((member) => member !== sendBy)
          .map(async (member) => {
            const userCol = await db.collection('users').doc(member).get();
            const token = userCol.get('token');
    
            if (!token) {
              return;
            }
    
            await admin.messaging().sendToDevice(token, {
              data: {
                chatID,
                userId: sendBy,
                memberId: member,
              },
              notification: {
                title: 'You have a message',
                body: msg,
                clickAction: 'FLUTTER_NOTIFICATION_CLICK',
              },
            });
          });
      });
    

我可以部署所有代码并发送到 firebase。但根本没有通知。顺便说一句,我有两个集合,它们是“聊天”和“用户”

0 个答案:

没有答案