Попытки получить токен из Firebase в методе залпа MainActivity
- Получить токен из FirebaseInstanceId.getInstance (). GetInstanceId и назначить его токену String.
- Получите токен в onCreate и назначьте его токену String, затем поместите в часть Volley.
final Map<String, String> params = new HashMap<>();
// params.put("Content-Type", "application/json; charset=UTF-8 ");
params.put("username", Name);
params.put("token", token);//<-- this is always empty and only username get stored in the database
Напишите другой метод для получения токена и возврата строки токена, затем назначьте его параметрам
params.put("token", getToken());//<-- this is in volley which is still empty
public String getToken() {
final String[] s = {""};
try {
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(ProfileActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
s[0] = instanceIdResult.getToken();
String token = instanceIdResult.getToken();
assignToken(token);
// Log.e("newToken in activity", s[0]);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i("FireBaseToken", "onFailure : " + e.toString());
}
});
} catch (Exception e) {
e.printStackTrace();
}
return s[0];
}
Были и другие попытки, но желаемых результатов не было. Если вы присваиваете значение глобальной переменной, объявленной вверху и присваивающей значение в onCreate, тогда токен должен быть там в части залпа (точно так же, как переменной Name однажды присвоено определенное значение, и оно остается везде). Но почему этого не происходит в случае токена?