Извлекать данные в плоский список из базы данных Firebase Real Time - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть структура данных, которую я хочу получить и отобразить в едином списке. Вот мои данные.

-Lt10FlMt0xtru36Ztmb
                  name : "Hello"
-Lt0pdC5Ikwd-ZWNBiYJ
                  name : "Coke"
-Lt0paPi_-zkCelfoisM
                  name : "Pespsi"

Вот мой код:

  readUserData = () => {

        firebase.database().ref('Brands/').once('value').then((snapshot) => {
            console.log(snapshot.val())
            const userdata = snapshot.val();

            //  Alert.alert("Helo" , userdata);
            this.setState({
              getListbrands : userdata

            })
            Alert.alert("Data" , JSON.stringify(this.state.getListbrands))


        });

    }

и вот яя устанавливаю данные в плоский список, но он не показывает ничего, пожалуйста, руководство.

{
  this.state.getListbrands &&
  <FlatList
  data={this.state.getListbrands}
  keyExtractor={(a, b) => b.toString()}
  renderItem={({ item }) => (
    <Text style={{color:'#000'}}>{item.name}</Text>
  )}

/>
}

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019
{
  this.state.getListbrands &&
  <FlatList
  data={this.state.getListbrands}
  keyExtractor={(a, b) => b.toString()}
  renderItem={(item) => (
    <Text style={{color:'#000'}}>{item.name}</Text>
  )}

/>
}

изменить, как это. Я думаю, пункт здесь не является объектом. Пожалуйста, попробуйте. это будет работать. спасибо.

0 голосов
/ 06 ноября 2019

Согласно документации, FlatList компонент ожидает массив данных. Значением вашего снимка является объект, а не массив.

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

firebase.database().ref('Brands/').once('value').then((snapshot) => {
    userdata = [];
    snapshot.forEach((child) {
        userdata.push(snapshot.val());
    })
    ...

Затем вы можете установить этот массив на FlatList.

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