Ger*_*rms 5 firebase firebase-admin
我正在将 Firebase Cloud Messaging 与 Java SDK (com.google.firebase:firebase-admin v 5.9.0) 结合使用。
处理 Java 代码中的错误的唯一方法是捕获 ExecutionException:
Message message = buildMessage(token,payload);
try {
String response = FirebaseMessaging.getInstance().sendAsync(message).get();
} catch (ExecutionException e) {
LOGGER.error("ExecutionException Error pushing notif : ", e);
}
// Response is a message ID string.
LOGGER.info("Successfully sent message: " + response);
Run Code Online (Sandbox Code Playgroud)
如果我想检测已删除的令牌,我必须读取 ExecutionException (FireBaseMessagingException)中包装的异常,并测试该消息是否为“未找到请求的实体”:
if(e.getCause().getMessage().equals("Requested entity was not found.") {
// token is deleted
}
Run Code Online (Sandbox Code Playgroud)
如果我想检测网络故障,我必须读取 ExecutionException(FireBaseMessagingException)中包装的异常,并测试该消息是否为“调用 FCM 后端服务时出错”:
if(e.getCause().getMessage().equals("Error while calling FCM backend service") {
// network problem, I have to retry
}
Run Code Online (Sandbox Code Playgroud)
采取的行动取决于这种检测,这是非常脆弱的。是否有可能实现更准确的错误判定?
| 归档时间: |
|
| 查看次数: |
5436 次 |
| 最近记录: |