/ / फायरबेस क्लाउड फायरस्टार: अमान्य संग्रह संदर्भ। संग्रह के संदर्भों में खंडों की एक विषम संख्या होनी चाहिए - जावा, एंड्रॉइड, फायरबेस, गूगल-क्लाउड-फायरस्टोर

फायरबेस क्लाउड फायरस्टार: अमान्य संग्रह संदर्भ। संग्रह के संदर्भों में खंडों की एक विषम संख्या होनी चाहिए - जावा, एंड्रॉइड, फायरबेस, गूगल-क्लाउड-फायरस्टोर

मेरे पास निम्नलिखित कोड है और एक त्रुटि मिल रही है:

Invalid collection reference. Collection references must have an odd number of segments

और कोड:

private void setAdapter() {
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("app/users/" + uid + "/notifications").get().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
Log.d("FragmentNotifications", document.getId() + " => " + document.getData());
}
} else {
Log.w("FragmentNotifications", "Error getting notifications.", task.getException());
}
});
}

उत्तर:

उत्तर № 1 के लिए 13

पदानुक्रमित डेटा संरचनाएं और सबकोलेक्शन में वर्णित हैं दस्तावेज़ीकरण। एक संग्रह में दस्तावेज़ और एक दस्तावेज़ शामिल हैंएक सबकोलेक्शन हो सकता है। संरचना हमेशा संग्रह और दस्तावेजों का एक वैकल्पिक पैटर्न है। प्रलेखन में एक उदाहरण का वर्णन है:

संग्रह के वैकल्पिक पैटर्न पर ध्यान दें औरदस्तावेजों। तुंहारे संग्रह और दस्तावेजों को हमेशा इस पैटर्न का पालन करना चाहिए। आप नहीं कर सकते एक संग्रह में एक संग्रह या एक दस्तावेज़ में एक दस्तावेज का संदर्भ।

इस प्रकार, एक संग्रह के लिए एक वैध मार्ग हमेशा रहेगाएक विषम संख्या में सेगमेंट होते हैं; एक दस्तावेज़ के लिए एक वैध मार्ग, एक सम संख्या। चूंकि आपका कोड किसी संग्रह को क्वेरी करने की कोशिश कर रहा है, इसलिए चार की पथ लंबाई अमान्य है।


जवाब के लिए 12 № 2

फिर आपको इसे बदलने की आवश्यकता है:

db.collection("app/users/" + uid + "/notifications")...

इसके लिए:

db.collection("app").document("users").collection(uid).document("notifications")

आप का स्वागत है ;)