Документ по Android Fireshore против подбора - PullRequest
0 голосов
/ 21 февраля 2019

Меня смущает документ и подколлекция android firstore.

В этом примере будет сгенерирована ниже структура данных:

root-> a -> b -> c -> d -> field1:apple
                           field2:orange

Код, приведенный ниже:

private void addItem() {
    FirebaseFirestore rootRefs = FirebaseFirestore.getInstance();
    Map<String, Object> item = new HashMap<>();
    item.put("field1", "apple");
    item.put("field2", "orange");
    rootRefs.collection("a")
            .document("b")
            .collection("c")
            .document("d")
            .set(item)
            .addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {

                }
            });
}

Узел подколлекции и документа отображается альтернативно: a, c иb, d.

Но как реализовать подобную структуру данных без узла d (как показано ниже):

root-> a -> b -> d -> field1:apple
                      field2:orange

Поскольку метод .add доступен только для документа, но не для сбора, мы не можемпросто удалите d (документ), поскольку в c (collection) нет метода add.

Как мне изменить мой код?

1 Ответ

0 голосов
/ 21 февраля 2019

Поскольку метод .add доступен только для документа, но не для коллекции, мы не можем просто удалить d (документ), поскольку c (коллекция) не имеет метода add.

Нет способа, которым вы можете достичь этого.Документ должен существовать под коллекцией или вложенной коллекцией.Документ не может существовать под другим документом.

Согласно официальной документации , единственная разрешенная структура выглядит следующим образом:

db.collection('coll').doc('doc').collection('subcoll').doc('subdoc')

В Firestore нет способа сохранить коллекцию под другой коллекцией.Поэтому следующая строка кода недопустима:

db.collection('coll').collection('subcoll').doc('subdoc') //Not allowed

Поскольку невозможно сохранить документ под другим документом.

db.collection('coll').doc('doc').doc('subdoc') //Not allowed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...