Google Firebase管理SDK服务帐户已过期?

时间:2018-05-21 09:35:40

标签: firebase firebase-cloud-messaging firebase-admin

我正在使用google firebase admin sdk并按照说明进行设置。我通过FCM发送消息和通知,这没有问题,但最近我注意到我们的指标显示没有通知发送到客户端设备。

看看Node.js输出,我看到了:

errorInfo:
   { code: 'messaging/invalid-apns-credentials',
     message: 'Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.' },
  codePrefix: 'messaging' }

请记住我最初使用的凭证文件正在运行,环境中没有任何变化。

查看文档除了提供firebase管理员sdk要求开始的json文件之外,没有任何关于令牌过期或处理任何类型的身份验证:

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://my-app-id.firebaseio.com"
});

如果我登录firebase控制台并检查服务帐户,我可以看到它,我唯一的选择是生成一个新的私钥(大蓝色按钮)。

我是否应该采取措施让凭据保持有效?更新令牌或其他什么?在FCM设置文档中没有任何地方提到它,并且它似乎意味着如果你使用官方firebase管理员sdk则不需要任何这种性质。以下是我遵循的指南:https://firebase.google.com/docs/admin/setup

如果我需要添加一些额外的代码以便在证书过期和续订时加入,那么任何人都可以权衡吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

如果为相同的AppID创建的新推送证书并包含现有应用程序的捆绑包ID,并且推送证书仅在其他地方使用,则您的应用程序的旧版本应继续使用新证书接收推送通知,无论您使用哪种证书

  

每当您更新APNS证书时,该应用的所有版本   不得不推送通知的人将再次收到通知。有   无需为此更新应用。

答案 1 :(得分:1)

查看errorInfo code密钥,我注意到它:messaging/invalid-apns-credentials,可以在此处找到每个errorInfo code的更多信息:{{3 }}

此特定errorCode说:

messaging/invalid-apns-credentials - 由于所需的APN SSL证书未上传或已过期,因此无法发送针对iOS设备的邮件。检查开发和生产证书的有效性。

就我个人而言,我的生产APNs证书存在问题,并且可以通过https://firebase.google.com/docs/cloud-messaging/admin/errors

重新生成新证书来解决它

要回答您的原始问题,APNs证书每年都会过期,因此您需要每年重新生成并重新上传它们。