Получить данные из базы данных в React Native - PullRequest
0 голосов
/ 02 марта 2019

У меня есть база данных Firebase в реальном времени со структурой, подобной этой:

-- places
   -- user1 uid
      -- name:
      -- latitude: 
      -- longitude:
   -- user2 uid
      -- name:
      -- latitude: 
      -- longitude:

При извлечении данных из Firebase, я хотел сохранить это как это

-- user1 name
   -- latitude
   -- longitude
-- user2 name
   -- latitude
   -- longitude

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

constructor(props) {
    super(props); 
    this.state = {
      places: []
    };
  }

  componentDidMount() {
    const ref = firebase.database().ref('places/');
    ref.once('value', (snapshot) => { 
      snapshot.forEach(snapshotchild => {
        snapshotchild.forEach(data => {

        })
      })

    });
  }

1 Ответ

0 голосов
/ 02 марта 2019

Глядя на таблицу данных, я предполагаю, что вы получаете данные примерно так:

const places = {
 user1Uid: {
  name: 'av',
  latitude: '1000',
  longitude: '1000'
 },
user2Uid: {
  name: 'we',
  latitude: '1000',
  longitude: '1000'
 }
}

Если это так, вы можете манипулировать данными, используя Array.forEach, for inили даже с Array.reduce, например, до

const obj = {};
Object.keys(places).forEach(item => {
  obj[places[item].name] = {
     latitude: places[item].latitude,
     longitude: places[item].longitude
   }

});
console.log(obj);

или, если вы хотите использовать уменьшение,

const newObj = Object.keys(places).reduce((accumulator, item) => Object.assign({
    [places[item].name]: {
     latitude: places[item].latitude,
     longitude: places[item].longitude
   }

 }, accumulator), {});
console.log(newObj);

Вы получите объект в консоли, как

{
  "we": {
    "latitude": "1000",
    "longitude": "1000"
  },
  "av": {
    "latitude": "1000",
    "longitude": "1000"
  }
}

Если вы хотите узнать больше о сокращении, вот ссылка

Счастливого кодирования:)

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