Firebase onCall फ़ंक्शंस Android में एक चर के परिणाम को बचाते हैं [डुप्लिकेट]

Nov 24 2020

मैं एंड्रॉइड ऐप से फायरबेस फ़ंक्शन को कॉल करने के परिणाम को बचाने की कोशिश करता हूं। मेरा फ़ंक्शन अच्छा काम करता है, क्योंकि मुझे लॉग में परिणाम दिखाई देता है। लेकिन मैं इसे आगे के उपयोग के लिए परिवर्तनीय में नहीं बचा सकता। कोई विचार?

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उपयोग किया जाता है

यह सवाल आपकी मदद कर सकता है। स्पष्टीकरण के लिए पूछने के लिए स्वतंत्र महसूस करें