FireStore в React-Native - PullRequest
       82

FireStore в React-Native

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

Привет, я пытался получить доступ к Firestore из приложения React-native

Мой проверенный код

import firebase from '@react-native-firebase/app'
import firestore from '@react-native-firebase/firestore';
import * as Actions from '../../../StateManager/Actions/ActionTypes'

export function getVersion() {
    return async (dispatch) => {
        /// Method 1
        firestore().collection('Versions').get().then(querySnapshot => {
            console.log('Snapshot: ' + querySnapshot)
            return null
          });

          /// Method 2
          firestore().collection('Versions').get()
          .then(querySnapshot => {
              console.log(querySnapshot);
          console.log(querySnapshot._docs);
      })
    }
}

Я не работал

Конфигурации выполнены

  1. Настройка приложений Android и iOS в консоли Firebase с одинаковым идентификатором BundleID (iOS) и одним и тем же пакетом (Android)
  2. Добавлен Google-сервис .plist в iOS
  3. Добавлен Google-Service. json в Android Модуль согласно документации
  4. Установлен npm install --save @react-native-firebase/app
  5. Установлен npm install —save @react-native-firebase/firestore в React Приложение
  6. Ran cd iOS/ && pod install оно установило все зависимости, связанные с Firebase и Firestore в iOS App
  7. Добавлено [FirebaseApp configure]; в iOS App AppDelegate.h
  8. Добавлены все зависимости вручную в Android App
  9. Сборка прошла успешно в обоих Android и iOS

Информация о консоли отладки: при вызове My getVersion () ниже попал в режим отладки

enter image description here

Я ответил на многие вопросы по стеку нет положительного результата

Включенные библиотеки:

React-Navigation, Redux, redux-thunk, Firebase, Firestore

Мой магазин и redux настроены правильно, а экран. js (мой Root экран, где Я называю это правильно подключенным к Redux и храню)

Ниже я называю это

componentDidMount() {
        this.props.getVersion()
        if (Platform.OS === 'android') {
            BackHandler.addEventListener('hardwareBackPress', this.handleBackPress)   
        }
    }

Структура FireStore:

enter image description here

Правила FireStore:

enter image description here

1 Ответ

1 голос
/ 27 мая 2020

Здесь я обновляю ответ на основе моих исследований и разработок

Я могу получить версию и статус из коллекции Firestore

Обновление ниже может помочь другим, кто борется за синтаксис

export function getVersion(versionID) {
    return async (dispatch) => {
        try {
            /// For Real Time
            firestore().collection('Versions').onSnapshot(querySnapshot => {
                querySnapshot.forEach(doc => {
                    if (doc.exists) {
                        const { version, status } = doc.data()
                    }
                });
            });

            /// For One Time
            firestore().collection('Versions').get().then(querySnapshot => {
                querySnapshot.forEach(doc => {
                    if (doc.exists) {
                        const { version, status } = doc.data()
                    }
                });
            });
        } catch (error) {
            console.log("*** Firebase - error setting document", { error });
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...