java - फायरस्टार जहां EqualTo, orderBy और सीमा(1) काम नहीं कर रही है



android firebase (1)

यह क्वेरी तब तक काम नहीं करेगी जब तक आप इसके लिए एक index नहीं बनाते। यह किया जा सकता है, इसे अपने फायरबेस कंसोल में मैन्युअल रूप से बनाकर या यदि आप एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं, तो आपको अपने लॉगकैट में एक संदेश मिलेगा जो इस तरह लगता है:

FAILED_PRECONDITION: The query requires an index. You can create it here: ...

आप बस उस लिंक पर क्लिक कर सकते हैं या url को वेब ब्रॉसर में कॉपी और पेस्ट कर सकते हैं और इंडेक्स अपने आप बन जाएगा।

मैं एक रूटीन से नवीनतम वर्कआउट के लिए अपने वर्कआउट कलेक्शन को क्वेरी करना चाहता हूं। मतलब whereEqualTo मैं अपने रुटीन के साथ whereEqualTo हूँ, उसे स्टार्टिंग टाइमस्टैम्प द्वारा अवरोही क्रम में ऑर्डर करें और फिर 1 तक सीमित करें और फिर इस 1st Key / Id of Workout को ले लें।

हालाँकि यह काम नहीं करता है। whereEqualTo और orderBy अलग-अलग काम करते हैं लेकिन संयुक्त नहीं होते हैं। मैं क्या गलत कर रहा हूं?

fm.getColRefWorkout().whereEqualTo("routineKey", routineKey).orderBy("startTimeStamp", Query.Direction.DESCENDING).limit(1).get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { 
                @Override
                public void onSuccess(QuerySnapshot documentSnapshots) {
                    workoutKey = documentSnapshots.getDocuments().get(0).getId();
                    //To stuff with this workoutKey
                }
            });




google-cloud-firestore