Объект фильтра для получения неизвестных пользовательских данных - PullRequest
0 голосов
/ 06 мая 2020

Привет, ребята, у меня есть эти данные: enter image description here Когда я console.log (Object.entries (data)), я получаю следующее: https://pastebin.com/jPyRuxFX

Я всегда знаю, что в этом объекте находится мой идентификатор пользователя: lwcIQTcpAae4e38hrD2K5Ar76W93 объект участников и объект сообщений. Я хочу отфильтровать его, чтобы в нем были только другие пользовательские данные. Другой идентификатор пользователя может быть любым уникальным ключом. Он находится в объекте, но у меня его нет ни в одной переменной. Поэтому мне нужно отфильтровать все данные. Вот что я пробовал:

 getChats = _userId => {
let data;
let usersData = [];
var readedData = firebase
  .database()
  .ref('chats')
  .orderByChild('members/' + _userId)
  .equalTo(true);
readedData.once('value', snapshot => {
  data = snapshot.val();

  const temp = { ...data };
  const filtered = Object.entries(data).map(duom =>
    duom
      .filter(user => user !== firebase.auth().currentUser.uid)
      .filter(user => !user.members)
      .filter(user => !user.messages),
  );

  console.log('filtered data: ' + JSON.stringify(data[filtered[0][0]]));

  this.setState({ chats: data, usersData: usersData });
  return true;
});

};

Но результат такой: [["-M6cy1JNy1V5cs35StW -"], ["- M4O-aIxt9w2iKuCDweN"], ["- M4NzlagjmeFH7IR_Api "]] Что я делаю не так, как редактировать этот фильтр?

Результат, который я хочу, есть в каждом объекте:

" tempuser ": {" username ":" Egle " , "profile_picture": "https://scontent.fkun1-1.fna.fbcdn.net/v/t1.0-9/38612482_1935470283165234_1771800590876147712_n.jpg?_nc_cat=111&_nc_sid=85a577&_nc_ohc=3rVHabbNJ3kAX9_0FBq&_nc_ht=scontent.fkun1-1.fna&oh=4277fff9a1441726bbf0efe18b44fae0&oe=5E9AA1F7"}

1 Ответ

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

Так мне удалось отфильтровать данные вот так:

const filtered = Object.entries(data).map(([key, value]) =>
        Object.keys(value)
          .filter(value => value !== _userId)
          .filter(value => value !== 'members')
          .filter(value => value !== 'messages'),
      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...