Firebase onCall-Funktionen speichern das Ergebnis in einer Variablen in Android [Duplikat]
Ich versuche, das Ergebnis des Aufrufs von Firebase-Funktionen über die Android-App zu speichern. Meine Funktion funktioniert gut, da das Ergebnis im Protokoll angezeigt wird. Aber ich kann es nicht zur weiteren Verwendung in Variablen speichern. Irgendwelche Ideen?
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
}
Antworten
onSuccess()
ist asynchron. Wenn Sie also den Wert von verwenden resultFBFunctions
, ist er möglicherweise leer, da die Daten noch nicht abgerufen wurden ...
Die abgerufenen Daten sollten innerhalb der onSuccess()
Methode selbst verwendet werden
Verwenden Sie zur Lösung Ihres Problems die in der onSuccess()
Methode selbst empfangenen Daten
Bitte geben Sie an, wofür resultFBFunctions
verwendet wird
Diese Frage kann Ihnen helfen. Fühlen Sie sich frei, um Klarstellungen zu bitten