web-dev-qa-db-ja.com

Firebaseエラー:APNSまたはWebプッシュサービスからの認証エラー

Node-jsで次の行を実行した後:

import * as admin from "firebase-admin";
import * as serviceAccount from "../../firebase_service_account_key.json";

const app = admin.initializeApp({
  credential: admin.credential.cert(serviceAccount as any),
  databaseURL: "https://my-app-path.firebaseio.com"
});

admin.messaging().send({
    token: "known-good-token",
    notification: {
        title: "Test Push Note",
        body: "Here is some text"
    }
});

エラーが発生します:

Error: Auth error from APNS or Web Push Service 
Raw server response: 
"{
  "error":{
    "code":401,
    "message":"Auth error from APNS or Web Push Service",
    "status":"UNAUTHENTICATED",
    "details"[
      {
        "@type":"type.googleapis.com/google.firebase.fcm.v1.FcmError",
        "errorCode":"THIRD_PARTY_AUTH_ERROR"
      },
      {
        "@type":"type.googleapis.com/google.firebase.fcm.v1.ApnsError",
        "statusCode":403,
        "reason":"InvalidProviderToken"
      }
    ]
  }
}"

Firebaseの[設定]> [クラウドメッセージング]セクションにあるiOSプロジェクトに「APNs認証キー」を追加しました。また、サービスアカウントのjsonファイルを適切にダウンロードしてインポートしました。

調査の面では、エラーを調べてみました。

  • InvalidProviderTokenエラーの場合、 この答え は、古いトークンを使用していることを示しているようです。これは完全に可能ですが、私のアプリとデータベースのログは一致しているように見えるため、ずれているようです。

  • THIRD_PARTY_AUTH_ERROR、グーグルは何もヒットしませんでした。私が見つけた最も近いものは this で、次のテキストが原因である可能性があります(編集:問題ではありません)。

auth/unauthorized-domain

アプリドメインがFirebaseプロジェクトのOAuthオペレーションに対して承認されていない場合にスローされます。承認済みドメインのリストをFirebaseコンソールから編集します。

このエラーの詳細を知っている人がいますか?

6
Seph Reed

先日すべてがうまくいったので、すべての設定は問題ありませんでした。しかし、今日私はこのエラーを受け取りました。

これが私のためにそれを解決したものです:

  1. 取り消されたAPNsキー
  2. 新しいものを作成してダウンロードしました
  3. 古いものを削除し、Firebase Dashboard/Settings/Cloud Messagingにアップロードしました
  4. 設定/サービスアカウントに移動し、新しい秘密鍵を生成しました
  5. 私のCloud Functionsプロジェクトに追加しました(私の場合はservice-account.jsonに名前を変更しました)
  6. ファイルを保存して関数をデプロイしました:firebase deploy --only functions
1
Rebeloper
0
zkohi