我有一个使用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
}
}
知道问题是什么吗?
答案 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);
这对我的项目很有效。