Выбирайте подколлекцию firestore при подключении компонента к редуксу с помощью response-redux-firebase - PullRequest
0 голосов
/ 16 февраля 2019

Я использую промежуточное программное обеспечение react-redux-firebase fireStoreConnect() с экраном в моем мобильном приложении для своих приложений.Во время подключения компонента к хранилищу резервных копий я хочу указать подколлекцию firestore, к которой я подключаюсь, в зависимости от пользователя, который перемещается в приложении.

Как указать коллекцию в firestoreConnect?Идентификатор пользователя находится в резервном хранилище.

MWE:

import React, { Component } from 'react';
import { View, Text } from 'react-native';
import { compose } from 'redux';
import { connect } from 'react-redux'
import { firestoreConnect } from 'react-redux-firebase';

class PhotosScreen extends Component {
  render() {
    return (
      <View>
        <Text> i plan the use this.props.images here </Text>
      </View>
    );
  }
}

const mapStateToProps = (state) => {

    // reference the subcollection of the user
    const images = state.firestore.data.images;

    return {
        images: images,
    }
}

export default compose(
    firestoreConnect([
        {
            collection: 'users',
            doc: "HOW DO I GET THE USERS ID HERE? IT IS IN REDUX STORE",
            subcollections: [{ collection: 'images' }]
        }
    ]),
    connect(mapStateToProps),
)(PhotosScreen)

1 Ответ

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

В 1.x

const enhance = compose(
  connect(
    (state) => ({
      someKey: state.someData
    })
  ),
  firebaseConnect(
    (props, firebaseInstance) => [
      { path: `${props.someKey}/someData` }
    ]
  )
)

В 2.x

firebaseConnect(
  (props, store) => [
    { path: `${store.getState().someKey}/someData` }
  ]
)

Обратите внимание, как второй аргумент в firebaseConnect меняется с firebaseInstance на store с v1 наv2.

Это должно дать вам то, что вам нужно.

...