FirebaseInstanceId.getInstance().getToken()已经过时。
FirebaseInstanceId.getInstance().getToken()已经过时。
此问题已经在这里有答案了:
我可以问一个问题吗,我可以使用“if”来使用FirebaseInstanceId吗?我尝试制作注册账户页面,但是没有反应或显示,并且我收到一个错误信息:
import android.support.annotation.NonNull; mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener(){ @Override public void onComplete(@NonNull Task task){ if(task.isSuccessful()){ // these lines for taking DEVICE TOKEN for sending device to device notification String userUID=mAuth.getCurrentUser().getUid(); String userDeiceToken=FirebaseInstanceId.getInstance().getToken(); userDatabaseReference.child(userUID).child("device_token").setValue(userDeiceToken) . addOnSuccessListener(new OnSuccessListener(){ @Override public void onSuccess(Void aVoid){ checkVerifiedEmail(); } }); }
admin 更改状态以发布 2023年5月21日
FirebaseInstanceId的getToken()
方法已被弃用。
根据文档:
此方法已被弃用,改用getInstanceId()。
由于这个改变,有一些事情你需要注意:
- 你不需要使用
FirebaseInstanceIdService
来接收token,而应该使用FirebaseMessagingService
- 在
FirebaseMessagingService
中覆盖onNewToken()
- 更新token的访问方式
下方的代码应该解决你的问题:
public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onNewToken(String token) { super.onNewToken(token); Log.d("TOKEN", token); } @Override public void onMessageReceived(RemoteMessage remoteMessage) { Log.d(TAG, "From: " + remoteMessage.getFrom()); } }
如果你需要检索token,可以使用以下方法:
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener() { @Override public void onSuccess(InstanceIdResult instanceIdResult) { String newToken = instanceIdResult.getToken(); Log.d("newToken", newToken); } });
本篇文章的示例代码参考自这篇文章。