在 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 的“设置”>“云消息传递”部分下将“APNs 身份验证密钥”添加到我的 ios 项目中。我还正确下载并导入了我的服务帐户 json 文件。
在研究方面,我尝试查找错误。
对于
InvalidProviderToken
错误,这个答案似乎表明我正在使用旧令牌。这是完全可能的,但我的应用程序和数据库上的日志似乎匹配,所以它似乎关闭。至于
THIRD_PARTY_AUTH_ERROR
,谷歌没有给我任何点击。我发现的最接近的东西是this,以下文本可能是罪魁祸首(编辑:这不是问题):身份验证/未经授权的域
如果应用程序域未获得 Firebase 项目的 OAuth 操作授权,则抛出此错误。从 Firebase 控制台编辑授权域列表。
有没有人有关于此错误的更多详细信息,可以帮助我深入了解它?
前几天一切都对我有用,所以所有设置都很好。但今天我遇到了这个错误。
这就是为我解决的问题:
firebase deploy --only
functions
你打电话
admin.initializeApp()
了吗?
有很多官方样品。
参见:
仔细检查是否已在 Firebase 控制台上上传了 apns 密钥。这就是我的情况。
如果其他一切都失败,请尝试创建新的 Firebase 项目并为其设置推送通知。
出于我们的目的,我们仅使用 firebase 发送推送通知,因此这是有效的。如果您将其用于其他用途,您可以将推送通知仍然分离到单独的项目中,并通过例如HTTP-requests调用它。
由于某种未知原因,我们的一个项目无法发送推送通知,已通过重新创建 firebase 项目修复了该问题。
想补充一下为什么这可能发生在 ios 上的另一个原因。他们正在升级到钥匙。因此,如果您有证书,在您进行调试时,它可能仍然可以工作到 2024 年 5 月,但启动时它将无法推送通知。
在苹果开发控制台证书,标识符和配置文件 - >密钥 - > +然后检查 apns
在 firebase ios 中上传该密钥,您将看到一条通知,它将自动禁用证书。