TypeError: _firebase__WEBPACK_IMPORTED_MODULE_10__.usersCollection.doc (...). collectionGroup-это не функция


TypeError: _firebase__WEBPACK_IMPORTED_MODULE_10__.usersCollection.doc (...). collectionGroup-это не функция

24.11.2020 10:31:45 Просмотров 44 Источник

У меня есть ошибка, как и в описании. Что я сделал не так? Я хотел бы, чтобы все документы коллекции "ульи" были показаны. Верен ли код, написанный на второй фотографии? Или, может быть, мне нужно что-то изменить? Нужно ли добавлять правило в firebase?

enter image description here

enter image description here

index.js

import * as fb from '../firebase';

const store = new Vuex.Store({
    state: {
        hives: [],
    },

    mutations: {
        setHives(state, val) {
            state.hives = val;
        },
    },

    actions: {
        async getHives() {
            await fb
                .collectionGroup('hives')
                .get()
                .onSnapshot((snapshot) => {
                    let hivesArray = [];

                    snapshot.forEach((doc) => {
                        let hive = doc.data();
                        hive.id = doc.id;

                        hivesArray.push(hive);
                    });

                    store.commit('setHives', hivesArray);
                });
        },
    },
});

export default store;

Ульи.Вью

<template>
    <ul class="content__list" v-if="hives.length">
        <li class="content__item">
            <p>ID</p>
            <p>Nazwa pasieki</p>
        </li>
        <li class="content__item" v-for="hive in hives" :key="hive.id">
            <p class="content__apiary-name">
                {{ hive.hiveId }}
            </p>
            <p class="content__apiary-name">
                {{ hive.apiary.apiary }}
            </p>
        </li>
    </ul>
</template>

<script>
export default {
    created() {
        this.getHives();
    },

    methods: {
        getHives() {
            this.$store.dispatch('getHives');
        },
    },
};
</script>
У вопроса есть решение - Посмотреть?

Ответы - TypeError: _firebase__WEBPACK_IMPORTED_MODULE_10__.usersCollection.doc (...). collectionGroup-это не функция / TypeError: _firebase__WEBPACK_IMPORTED_MODULE_10__.usersCollection.doc(...).collectionGroup is not a function

Является ответом!
Doug Stevenson

24.11.2020 10:43:42

Firestore не допускает, чтобы запросы группы коллекций с collectionGroup() были ограничены определенным документом. collectionGroup() можно использовать только для запроса всех вложенных коллекций с одинаковым именем во всей базе данных, например:

fb.collectionGroup("hives").get()

Если вы просто хотите получить определенную подколлекцию, вложенную в документ, просто создайте ссылку на нее:

fb.usersCollection.doc(...).collection("hives").get()
Помочь в развитии проекта:
Закрыть X