Les fonctions Firebase onCall enregistrent le résultat dans une variable dans Android [duplicate]
J'essaie d'enregistrer le résultat de l'appel des fonctions Firebase à partir de l'application Android.Ma fonction fonctionne bien, car je vois le résultat dans le journal. Mais je ne peux pas l'enregistrer dans une variable pour une utilisation ultérieure. Des idées?
public void getUserRankFromFirebase(){
mFunctions = FirebaseFunctions.getInstance();
Map<String, Object> data = new HashMap<>();
String resultFBFunctions = "";
mFunctions
.getHttpsCallable("getUserOnCall")
.call(data)
.addOnSuccessListener(getActivity(), new OnSuccessListener<HttpsCallableResult>() {
@Override
public void onSuccess(HttpsCallableResult httpsCallableResult) {
resultFBFunctions = httpsCallableResult.getData().toString();
Log.d("result1", httpsCallableResult.getData().toString()); //I see result here
}
});
Log.d("result2", resultFBFunctions); // No result here
}
Réponses
onSuccess()
est asynchrone. Ainsi, lorsque vous utilisez la valeur de resultFBFunctions
, elle peut être vide car les données ne sont pas encore récupérées ...
Les données récupérées doivent être utilisées dans la onSuccess()
méthode elle-même
Pour résoudre votre problème, utilisez les données reçues dans la onSuccess()
méthode elle-même
Veuillez préciser ce qui est resultFBFunctions
utilisé pour
Cette question peut vous aider. N'hésitez pas à demander des précisions