Android Firebase getToken()在单个设备上突然返回null
我有一个应用程序正在利用Firebase-我用它发送通知和火灾事件。 目前,该应用程序在大约100台设备上运行,没有任何问题。 就在最近,当我调用Android Firebase getToken()在单个设备上突然返回null,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,我有一个应用程序正在利用Firebase-我用它发送通知和火灾事件。 目前,该应用程序在大约100台设备上运行,没有任何问题。 就在最近,当我调用getToken()时,一台设备总是得到null,应用程序变得不可用。 这是唯一一个受影响的应用程序,而且都是突然启动的——它一周前还在运行。 代码逻辑似乎很好,因为它在所有其他设备上工作。 尝试了两种FirebaseInstanceId.getInstance().getToken()和FirebaseInstanceId.getInstance()
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>
这在我的项目中效果很好。如果没有任何代码,我们无法猜测发生了什么,请向我们展示您所做的工作,我们可以查看它。没有太多要显示的内容,但已更新为什么您认为它为空?我建议创建一个函数,在Firebase分支上记录您想要的内容。或者使用另一个远程日志记录选项。这是了解发生了什么的唯一方法。如果这只发生在特定设备上,那么可能是设备本身的问题(例如,终止FCM服务),他说他已经尝试了FirebaseInstanceId.getInstance().getToken()如果一切都正常,你能解释一下你的答案是如何改进或纠正问题的吗?
FirebaseApp.initializeApp(this);