Реагировать на собственное управление состоянием Redux Firebase? - PullRequest
0 голосов
/ 24 апреля 2020

В настоящее время я создаю приложение для электронной коммерции и решил использовать Expo в тандеме с Firebase и Redux (я впервые кодирую что-либо в React Native, и учебник, которым я следовал, подтолкнул меня к этому). В настоящее время я понимаю, что, вероятно, лучше всего использовать избыточность, потому что мое приложение должно хранить: -пользовательскую информацию -каталог продукции -Messages

в централизованном месте, к которому легко получить доступ. Тем не менее, я сталкиваюсь с проблемой. Просто не так уж много документации по Redux и FireBase, и я пытаюсь понять, как собрать все это вместе.

На данный момент, при инициализации через мой редуктор управления это код:

'''
//Default Project is the instance of Firebase connection
var defaultProject = null;
//Default Firestore is the link to Firebase
var defaultFirestore = null;

//Upon being called, this function will create an instance of a DEFAULT_APP for Firebase
const initializerFunc = (state) => {
    //Assigns firebase as the default project
    defaultProject = firebase.initializeApp(firebaseConfig);
    //Logs the name -- Will just be default
    console.log(defaultProject.name);
    //Now that we have access to firebase -- assign the default store to store
    defaultFirestore = defaultProject.firestore();
   //While categories are stored locally, products are uploaded from cloud
    state.categories = CATEGORIES;


    function addProduct(doc) {
        state.products.push(new Product(
            doc.data().id,
            doc.data().categories,
            doc.data().name,
            doc.data().price,
            doc.data().count,
            doc.data().distributor,
            doc.data().minOrder,
            doc.data().location,
            doc.data().contactPhone,
            doc.data().image
        ));
    }


    defaultFirestore.collection('ProductList').get().then((snapshot) => {
        snapshot.docs.forEach(doc => {
            addProduct(doc);
        })
        console.log(state.products);

    })
}


//Create the initialState -- This will have no information associated with it
const initialState = {
    products: [],
    categories: [],
    cartSelection: [],
};
'''

Однако это создает очевидную проблему, поскольку данные не будут получены во время выполнения, состояние не будет настроено для загрузки всех продуктов, и как только все продукты будут в он не будет обновлять состояние, чтобы показать все продукты. Как мне начать заниматься такими вещами?

Любая помощь будет признательна!

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