Создание списка друзей с Firebase в реальном времени - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть базовая c пользовательская база данных в firebase, где каждый пользователь сохраняется под своим uid с адресом электронной почты, именем и списком «друзей».

Я пытаюсь создать список друзей на клиенте (который я затем фиксирую в хранилище vuex), опрашивая всех пользователей, у которых есть ребенок в узле «друзей», чей ключ совпадает с ключом текущего пользователя ...

Я пробовал несколько параметры, но ничего не работает ...

Что-то вроде:

let friendsList = fb.db.ref('users');
    friendsList.where('friends').orderByChild(`${uid}`, '==', true)

Моя структура базы данных:

enter image description here

Любая точка в правильном направлении была бы удивительной!

ОБНОВЛЕНИЕ: написал эту короткую MF в то же время. Но есть миллион лучших вариантов:

    fetchFriends({ commit }, uid) {
      let userList = fb.db.ref('users');
      userList.on('value', snap => {
        let finalFriendList = []
        let data = snap.val()
        console.log('data', data)
        let userUIDS = Object.keys(data)
        //then we check teh data to see if friends object includes the user
        userUIDS.map( id => {
          let userFriends
          userFriends = data[id].friends
          let userFriendsKeys = Object.keys({...userFriends})

          userFriendsKeys.forEach( friend => {
            if (friend === uid) {
              console.log('fire', id)
              let friendObj = {}
              friendObj.uid = id
              friendObj.name = data[id]['name']
              friendObj.isOnline = data[id].isOnline
              friendObj.email = data[id]['email']
              finalFriendList.push(friendObj)
            }
          })
        })
          //return friends whose child of 'friends' has a child 
          console.log('final array', finalFriendList)
          commit('setFriends', finalFriendList)
        })
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...