Java 安卓工作室问题;将变量'refreshedToken'类型更改为'Task
既然FirebaseInstanceId在Android Studio中已被弃用,我如何更正这段代码 字符串refreshedToken=FirebaseInstanceId.getInstance.getToken 我尝试将其更改为: String refreshedToken=FirebaseMessaging.getInstance.getToken 但是当我这样做的时候,我会得到一个错误,说 将变量“refreshedToken”类型更改为“Task” 我的全部代码是:Java 安卓工作室问题;将变量'refreshedToken'类型更改为'Task,java,android,firebase,firebase-cloud-messaging,Java,Android,Firebase,Firebase Cloud Messaging,既然FirebaseInstanceId在Android Studio中已被弃用,我如何更正这段代码 字符串refreshedToken=FirebaseInstanceId.getInstance.getToken 我尝试将其更改为: String refreshedToken=FirebaseMessaging.getInstance.getToken 但是当我这样做的时候,我会得到一个错误,说 将变量“refreshedToken”类型更改为“Task” 我的全部代码是: import a
import android.app.Application;
import androidx.multidex.MultiDexApplication;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.messaging.FirebaseMessaging;
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
FirebaseMessaging.getInstance().subscribeToTopic("fireblogappnotification");
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
}
}
它给你这个错误是因为FirebaseMessaging.getInstance.getToken;具有任务的返回类型&您正在使用字符串 所以,您可以做的是添加侦听器&等待任务完成并从中获取令牌 详情如下:
Task<String> refreshedToken = FirebaseMessaging.getInstance().getToken();
refreshedToken.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull @NotNull Task<String> task) {
if (task.isSuccessful()){
String token = task.getResult();
}
}
});
它给你这个错误是因为FirebaseMessaging.getInstance.getToken;具有任务的返回类型&您正在使用字符串 所以,您可以做的是添加侦听器&等待任务完成并从中获取令牌 详情如下:
Task<String> refreshedToken = FirebaseMessaging.getInstance().getToken();
refreshedToken.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull @NotNull Task<String> task) {
if (task.isSuccessful()){
String token = task.getResult();
}
}
});
您将收到以下错误: 将变量“refreshedToken”类型更改为“Task” 因为您试图将Task类型的对象保存到String类型的对象中,这在Java中实际上是不可能的,这是因为这两个类之间没有继承关系 为了获得令牌,您需要附加一个侦听器。因此,请尝试以下代码行:
Task<String> tokenTask = FirebaseMessaging.getInstance().getToken();
tokenTask.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (task.isSuccessful()) {
String token = task.getResult();
Log.d("TAG", "token: " + token);
//Do what you need to do with your token
}
}
});
您将收到以下错误: 将变量“refreshedToken”类型更改为“Task” 因为您试图将Task类型的对象保存到String类型的对象中,这在Java中实际上是不可能的,这是因为这两个类之间没有继承关系 为了获得令牌,您需要附加一个侦听器。因此,请尝试以下代码行:
Task<String> tokenTask = FirebaseMessaging.getInstance().getToken();
tokenTask.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (task.isSuccessful()) {
String token = task.getResult();
Log.d("TAG", "token: " + token);
//Do what you need to do with your token
}
}
});
感谢您提供此解决方案。感谢您提供此解决方案。非常准确,谢谢非常准确,谢谢