реагировать на базу данных в реальном времени - PullRequest
0 голосов
/ 22 марта 2020

Я использую базу данных Firebase в реальном времени, я могу получить данные фотографии, но я буду использовать фотографию в базе данных реального времени, она не отображает плоский список компонентов.

мой код получает базу данных:

componentDidMount() {
firebase.auth().onAuthStateChanged(user => {
  if (user != null) {
    const rootRef = firebase.database().ref();
    const userRef = rootRef.child(`user/${user.uid}/car`);
    this.setState({ uid: user.uid })
    userRef.on('value', (childSnapshot) => {
      const cars = [];
      childSnapshot.forEach((doc) => {
        cars.push({
          distance: doc.val().distance,
          time: doc.val().time,
          price: doc.val().price,
          photo:doc.val().photo,
          key: doc.key,
        });
        this.setState({
          cars: Object.values(cars)
        })
      });
    })
  }
});

}

Flatist

<FlatList data={this.state.cars}
          renderItem={({ item }) => (
            <List>
              <ListItem avatar>
                  <Image style={{width:50,height:50}} source={item.photo}></Image>
              </ListItem>
            </List>)}
        />

Не показывать фото "Картинка"

1 Ответ

0 голосов
/ 22 марта 2020

Ссылка, которую вы храните на фотографию, представляет собой локальный URL-адрес файла на устройстве, на котором вы ее добавили. Это будет работать только на устройстве, на котором фотография уже существует, и даже в этом случае она может перестать работать в любое время.

Что вам нужно сделать, это загрузить фотографию на сервер, где все пользователи могут видеть Это. Например, вы можете загрузить фотографию с помощью Firebase Storage SDK , затем запросить URL-адрес для загрузки (см. Конец в этом примере ) и написать этот URL в базу данных. С таким URL для загрузки все пользователи могут читать картинку.

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