Las funciones de Firebase onCall guardan el resultado en una variable en Android [duplicado]
Nov 24 2020
Intento guardar el resultado de llamar a las funciones de firebase desde la aplicación de Android. Mi función funciona bien, porque veo el resultado en el registro. Pero no puedo guardarlo en variable para su uso posterior. ¿Algunas ideas?
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
}
Respuestas
3 Vishnu Nov 24 2020 at 13:54
onSuccess()es asincrónico. Entonces, cuando se usa el valor de resultFBFunctions, puede estar vacío ya que los datos aún no se recuperan ...
Los datos recuperados deben usarse dentro del onSuccess()propio método
Para solucionar su problema, utilice los datos recibidos dentro del onSuccess()propio método
Especifique para qué se resultFBFunctionsutiliza
Esta pregunta puede ayudarte. No dudes en pedir aclaraciones