首页 > 解决方案 > Firebase 不会为一台设备生成令牌

问题描述

我正在开发一个使用 firebase 云消息传递的 android 应用程序。

有一台设备(Android S10 - Android 10)让我有些头疼。

原始流程:

1 - 主要活动:

FirebaseMessaging.getInstance().setAutoInitEnabled(true);

2 - 通知服务:

2.1 -onNewToken

2.2 - 将令牌保存在房间数据库中以备将来使用

3 - 当用户登录时,将令牌发送到 API

4 - API 开始为该令牌发送 PUSH NOTIFICATIONS

此流程适用于所有其他经过测试的设备(Motorola x4 - Android 8、Motorola One Zoom - Android 9、Samsung S9 - Android 10、Samsung S20 - Android 10),但由于某些原因,当 APK 为签名并编译发布。

出于调试原因,尝试更改一堆代码。改变:

FirebaseMessaging.getInstance().setAutoInitEnabled(true);

至:

FirebaseApp.initializeApp(getApplicationContext());

对任何设备都没有影响

尝试在 MainActivity' 中添加以下代码onCreate

        FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(task -> {
            if (!task.isSuccessful()) {
                return;
            }
            //save token for future use here
        });

没有影响

在调用上面的代码之前尝试删除instaceId: FirebaseInstanceId.getInstance().deleteInstanceId(); 也没有效果

我可以为该手机检索 firebase 令牌的唯一方法是FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(...);在我的Application.onCreate()

如果它完全起作用,那将不是问题。

尝试发送从 检索到的此令牌的推送通知Application.onCreate(),但它从未收到它。

我正在使用所有最新的库版本

试图将下面的行放在 proguard 配置中:

-keep class com.google.firebase.** { *; }

有什么建议么?

标签: androidfirebasepush-notification

解决方案


推荐阅读