As funções do Firebase onCall salvam o resultado em uma variável no android [duplicado]
Nov 24 2020
Tento salvar o resultado da chamada de funções do firebase do app Android. Minha função funciona bem, porque vejo o resultado no log. Mas não posso salvá-lo em variável para uso posterior. Alguma ideia?
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
}
Respostas
3 Vishnu Nov 24 2020 at 13:54
onSuccess()
é assíncrono. Portanto, ao usar o valor de resultFBFunctions
, ele pode estar vazio, pois os dados ainda não foram recuperados ...
Os dados recuperados devem ser usados dentro do onSuccess()
próprio método
Para resolver seu problema, use os dados recebidos dentro do onSuccess()
próprio método
Especifique para que é resultFBFunctions
usado
Esta questão pode ajudá-lo. Sinta-se à vontade para pedir esclarecimentos
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino