Я не могу получить новую коллекцию в Firestore, используя приведенный ниже код. Всегда выдает ошибку:
Неверная ссылка на коллекцию. Ссылки на коллекции должны иметь нечетное количество сегментов, но Stores / Stored_Product_Storage имеет 2.
ProductClass dummyProduct = new ProductClass("dummyitem", 0, "none", 0);
db.collection("Stores").document("Stored_Product_Storage").collection(String.valueOf(docLocation)).add(dummyProduct);
db.collection("Stores").document("Stored_Product_Storage").collection(String.valueOf(docLocation))
.whereGreaterThan("price", 0)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
products.clear();
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
String name = document.get("name").toString();
int price = Integer.parseInt(document.get("price").toString());
float units = Float.parseFloat(document.get("units").toString());
String unitType = document.get("unitType").toString();
ProductClass product = new ProductClass( name, price, unitType, units);
products.add(product);
}
progressDialog.dismiss();
storeProductUpdateActivityAdapter.notifyDataSetChanged();
} else {
Log.w(TAG, "Error getting documents.", task.getException());
}
}
});
Когда я непосредственно вставляю строку вместо String.valueOf (docLocation), тогда новая коллекция вместе с документ создан для вставки фиктивных данных о товаре. Но если я попытаюсь использовать переменную вместо непосредственного указания строки в этом поле, это даст мне ошибку ссылки на коллекцию. То же самое происходит при чтении данных. Я храню собственный идентификатор строки в docLocation. Может кто-нибудь помочь мне исправить это? Заранее спасибо.