Firebase onCall 함수는 결과를 android의 변수에 저장합니다. [duplicate]

Nov 24 2020

Android 앱에서 firebase 함수를 호출 한 결과를 저장하려고하는데 로그에 결과가 표시되기 때문에 내 함수가 잘 작동합니다. 그러나 나중에 사용하기 위해 변수에 저장할 수 없습니다. 어떤 아이디어?

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
    }

답변

3 Vishnu Nov 24 2020 at 13:54

onSuccess()비동기입니다. 따라서의 값을 사용할 때 resultFBFunctions데이터가 아직 검색되지 않았으므로 비어있을 수 있습니다.

검색된 데이터는 onSuccess()메서드 자체 내에서 사용해야 합니다.

문제를 해결하려면 onSuccess()메서드 자체에서 받은 데이터를 사용하십시오.

resultFBFunctions용도를 지정하십시오

이 질문이 도움 이 될 것입니다. 설명을 요청하십시오.