Firebase getToken()在单个设备

时间:2018-03-19 21:31:22

标签: android firebase firebase-cloud-messaging

我有一个使用Firebase的应用 - 我用它来发送通知和火灾事件。 该应用程序目前在大约100台设备上没有任何问题。 就在最近,当我致电null并且应用变得无用时,单个设备始终会收到getToken()。 这是唯一一个受影响的应用程序,并且都是在一个星期前开始工作的。 代码逻辑似乎很好,因为它在所有其他设备上工作。 尝试了FirebaseInstanceId.getInstance().getToken();FirebaseInstanceId.getInstance().getToken(getString(R.string.gcm_defaultSenderId),null);但没有成功。 应用程序重新安装,设备已恢复出厂设备。

问题是设备不在我身边 - 它位于远程位置,所以我看不到日志中的内容。根据用户的说法,没有任何改变。

只需标准实施,在100台设备上工作:

public class FirebaseInstanceIDService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        // Get updated InstanceID token.
        String refreshedToken = null;
        try {
            refreshedToken = FirebaseInstanceId.getInstance().getToken(getString(R.string.gcm_defaultSenderId),null);
            Log.d(TAG, "Token: " + refreshedToken);
        } catch (IOException e) {
            Log.d(TAG, "Token Err: " + e.toString());
            e.printStackTrace();
        }

        sendRegistrationToServer(refreshedToken);
    }

    private void sendRegistrationToServer(String refreshedToken) {
        //Do something with Token
    }
}

知道问题是什么吗?

1 个答案:

答案 0 :(得分:-1)

尝试这样使用:

String refreshedToken = FirebaseInstanceId.getInstance().getToken();

同时检查您是否在清单文件中有此内容:

  <!-- FIREBASE SERVICES -->

    <service android:name=".services.firebase.AppFirebaseInstanceIdService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

这就是你的自定义Application类,在manifest上注册:

FirebaseApp.initializeApp(this);

这对我的项目很有效。