Firebase 如何通过云功能向指定用户发送通知?

Firebase 如何通过云功能向指定用户发送通知?,firebase,google-cloud-functions,Firebase,Google Cloud Functions,是否有任何方法向指定用户发送通知 const res = await db.collection('users') .where('businessDetails.serviceSubCategories','array-contains',subId) .where('businessDetails.isApplied','==','Y') .get(); if(res.empty){ return; }else{ //se

是否有任何方法向指定用户发送通知

const res = await db.collection('users')
    .where('businessDetails.serviceSubCategories','array-contains',subId)
    .where('businessDetails.isApplied','==','Y')
    .get();

    if(res.empty){
        return;
    }else{

     //send notification only response users

        const payload: admin.messaging.MessagingPayload = {
            notification:{
                title: `New Enquiry`,
                body:`${customerName} published to ${subName}`,
                badge: '1',
                sound: 'default'
            }
        }

        return fcm.sendToTopic('requirements',payload);
    }

Firebase有两种不同的方式发送FCM消息:

无论是按主题还是按主题,这都是你正在做的事情。 或者通过registrationToken,以一个具有特定密钥的单个用户/设备为目标。 令牌是客户端生成的,您必须非常安全地发送到DB,如果有人可以访问该令牌,他将能够向您的用户发送通知

下面是发送通知的代码:

//此注册令牌来自客户端FCM SDK。 var registrationToken='您的注册令牌'; var消息={ 数据:{ 得分:850分, 时间:2:45 }, 令牌:注册令牌 }; //将消息发送到与所提供设备对应的设备 //注册令牌。 admin.messaging.sendmessage .thenresponse=>{ //响应是消息ID字符串。 console.log“已成功发送消息:”,响应; } .catcherror=>{ console.log“发送消息时出错:”,错误; }; 现在提出了如何从用户处获取令牌的问题:

以下是网站的代码:

//获取实例ID令牌。最初,一旦检索到,就会进行网络调用 //对getToken的后续调用将从缓存返回。 messaging.getToken.thencurrentToken=>{ if-currentToken{ sendTokenToServercurrentToken; updateUIForPushEnabledcurrentToken; }否则{ //显示权限请求。 log“没有可用的实例ID令牌。请求生成一个实例ID令牌的权限”; //显示权限界面。 需要更新IForpushPermissions; setTokenSentToServerfalse; } }.catcherr=>{ console.log“检索令牌时出错。”,错误; showToken“检索实例ID令牌时出错”,错误; setTokenSentToServerfalse; };