web-dev-qa-db-ja.com

FireBase Cloud関数でFireBase Cloud Messagingを使用してプッシュ通知を送信しようとしたときに要求されたエンティティが見つかりませんでした

次のコードを使用してFireBase Cloud関数からFCMを介してマルチキャスト通知を送信しようとしています。

const message = {
    tokens: recipients,
    notification: {
        title: title,
        body: body
    },
    data: {
        projectPartnerId: projectPartnerId
    }
};
return admin.messaging().sendMulticast(message);
 _

そして、プッシュ通知のどれも送信されていません。各応答には同じメッセージが含まれているというエラーが含まれています。「要求されたエンティティは見つかりませんでした」。

Google Cloud ConsoleのAPIを有効にしました(これはFirebaseのドキュメントのどこにも言及されていませんでしたが、明らかに必要でした)。私は他に何ができるかわからない。そして、私がHTTP APIまたはレガシAPIに関連する他のすべての質問。私はFirebase管理SDKの最新バージョンを使用しています。

13
Sebastien

理解した。それで、明らかに、このエラーは、"messaging/registration-token-not-registered"エラーコードによって証明されるように、私が送信しようとしているFCMトークンがもう登録されていないときに発生します。その場合、私はユーザーのトークンからこのトークンを削除してそれを実行する必要があります。

2
Sebastien

IOSアプリのプッシュ通知を設定するときは、最近この問題になりました。 GitHub Thread Via この回答 。この問題は、Info.plistFirebaseAppDelegateProxyEnabledが文字列ではなくBOOLに設定されていることでした。

    <key>FirebaseAppDelegateProxyEnabled</key>
    </false>

becomesう

    <key>FirebaseAppDelegateProxyEnabled</key>
    <string>0</string>

GitHubコメントは、中程度の投稿を介してフレーバーの実装を説明し、Firebase/MessagingPodfileに追加することについて説明します。これはFlutterを使用してiOSアプリを構築することに関連しています。私のプロジェクトはFlutterで建てられていますが、Flutter自体によって管理されているように、フレーバーの周囲に何かを実装する必要がありませんでした。

同じ問題に直面した後、これは私のためにトリックをしました。

の中に Info.plistファイルを変更しました

<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
 _

これに

<key>FirebaseAppDelegateProxyEnabled</key>
<string>NO</string>
 _
0