gpt4 book ai didi

java - MessagingErrorCode 的成员对应什么错误码?

转载 作者:行者123 更新时间:2023-12-04 15:17:41 27 4
gpt4 key购买 nike

这是关于从 Firebase 客户端版本 6 到 7 的迁移。

过去,我们在 com.google.firebase.messaging.SendResponse 的实例上调用了 .getException().getErrorCode()

我们专门处理了两种情况,“registration-token-not-registered”“mismatched-credential”

从版本 7 开始,有两种不同的错误代码可以检索,一种使用 .getException().getErrorCode()(返回一个通用的 ErrorCode)和 .getException.getMessagingErrorCode()(返回更合适的 MessagingErrorCode)。

migration guide to version 7清楚地表明第一种情况 "registration-token-not-registered" 现在可以用 .getException.getMessagingErrorCode() 处理并匹配 MessagingErrorCode.UNREGISTERED ,但是 "mismatched-credential"(以及所有其他可能的错误)的情况没有在任何地方记录。

我能找到的最好的东西是 documentation of the enum .

但我不确定

The credential used to authenticate this SDK does not have permission to send messages to the device corresponding to the provided registration token

(来自 Admin Error codes documentation )和

The authenticated sender ID is different from the sender ID for the registration token.

(来自 documentation of the enum MessagingErrorCode.SENDER_ID_MISMATCH )意思相同...


我的问题有两个:

  • 是否有将 MessagingErrorCode 与实际管理错误代码相关联的好方法?
  • MessagingErrorCode.SENDER_ID_MISMATCH"mismatched-credential" 的正确错误代码吗?

最佳答案

MessagingErrorCode 与遗留管理错误代码相关联

Admin error code documentation你所引用的仅适用于今天的 Node.js SDK,它仍然停留在表示 API 错误的旧方法中。因此,如果您使用 Node.js 以外的语言进行编码(并使用最新的可用 Firebase SDK),请忽略那些遗留错误代码,只处理在提供的枚举中明确定义的错误代码。在许多情况下,这些旧错误代码和新错误代码之间没有直接的 1:1 映射。

有关错误代码的最新信息,您应该引用 Admin SDK error handling .

mismatched-credential 错误码

旧的 mismatched-credential 错误代码用于表示两个不同的错误条件:

  1. 实际 token 不匹配错误,其中调用者无权发送给给定设备 token 。
  2. 由于授权凭据缺少所需的 IAM 角色/权限而导致的其他一般权限错误。

新的 v7 Java SDK 区分了这两种情况。情况 1 由 MessagingErrorCode.SENDER_ID_MISMATCH 表示。

SENDER_ID_MISMATCH The authenticated sender ID is different from the sender ID for the registration token. This usually means the sender and the target registration token are not in the same Firebase project.

情况 2 导致 ErrorCode.PERMISSION_DENIED 没有 MessagingErrorCode 值。

PERMISSION_DENIED Client does not have sufficient permission. This can happen because the OAuth token does not have the right scopes, the client does not have permission, or the API has not been enabled for the client project.

大多数开发人员只想在他们的代码中处理情况 1。情况 2 几乎总是配置错误。

关于java - MessagingErrorCode 的成员对应什么错误码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64005494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com