Firebase Cloud Functions - 由于端点已弃用,通过 FCM 发送消息不起作用

问题描述 投票:0回答:1

我希望你能帮助我解决这个问题。我有一个 Firebase 云功能,当在 firestore 数据库上创建文档时,它会通过 FCM 向某个主题发送消息。这是我的代码:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();

exports.onWordpressPostCreate = functions.firestore
    .document("wpPosts/{title}")
    .onCreate((snap, context) => {

        console.log("-------------start create function-----------------");

        const data = snap.data();
        const title = data.title;
        const excerpt = data.excerpt;

        const payload = {

            notification: {
              title: `Neuer Deal: ${title}`,
              body: excerpt,
              badge: "1",
              sound: "default",
            },

        };


        return admin.messaging().sendToTopic("newDeal", payload)
            .then((response) => {

                console.log("Successfully sent message:", response);

            })
            .catch((error) => {
            console.error("FCM failed", error);
            });
    });

过去一切正常,但今天我在 Firebase Cloud 功能的日志中收到一条错误消息,该端点将被弃用。

“消息:'返回了未知的服务器错误。原始服务器响应:“{”error“:”已弃用的端点,请参阅https://firebase.google.com/docs/cloud-messaging/migrate-v1“}” '

这是一个已知问题吗?我不知道应该在我的函数中更改什么,因为我在那里不使用特定的 HTTP 端点。我只使用函数 sendToTopic()。也许有人也遇到了这个问题,可以在这里帮助我。 此外,我不得不说,有时该功能可以工作,有时我会收到此错误消息,作为一种警告,表明该功能将来根本无法工作。

我在 Google 上搜索了这个问题,发现应该将 Legacy FCM API 迁移到 HTTP v1。但我不知道这会如何影响我的功能或者我必须在那里改变什么。在此链接的文章中,它说我必须更改端点和正文的结构,但在 Firebase Cloud Functions 中,这全部由 FCM 函数本身处理。我只需要使用有效负载调用 sendToTopic()...

firebase google-cloud-functions firebase-cloud-messaging firebase-admin
1个回答
0
投票

Firebase 已弃用

sentToTopic
方法,您应该使用
send
方法发送主题,并将主题添加到有效负载中,如下所示

{
   topic: "a topic here",
   notification: {
              title: `Neuer Deal: ${title}`,
              body: excerpt,
              badge: "1",
              sound: "default",
  },
© www.soinside.com 2019 - 2024. All rights reserved.