Ошибка получения неверной ссылки на коллекцию при доступе к Firestore - PullRequest
0 голосов
/ 01 мая 2020

Я не могу получить новую коллекцию в 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. Может кто-нибудь помочь мне исправить это? Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2020

Это почти наверняка тот случай, когда String.valueOf(docLocation) возвращает пустую строку. Вам нужно будет проверить это перед передачей на document().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...