我有一个使用Firebase的应用程序 - 我用它来发送通知和触发事件。该应用程序目前在大约 100 台设备上运行没有任何问题。就在最近,当我打电话给getToken()
并且应用程序变得无用时,一台设备总是null
。这是唯一受影响的应用程序,并且都是突然开始的 - 它一周前才开始工作。代码逻辑似乎很好,因为它在所有其他设备上都可以工作。尝试了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
}
}
知道问题可能是什么吗?
尝试像这样使用:
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>
这是在自定义应用程序类上注册
的清单:FirebaseApp.initializeApp(this);
这在我的项目中工作正常。