проблема при добавлении друга в базу данных (React / Firebase) - «Ошибка типа: Friends.pu sh не является функцией» - PullRequest
0 голосов
/ 30 апреля 2020

Заранее большое спасибо за любую помощь. По сути, я пытаюсь написать код, позволяющий пользователю добавить друга в свой «список друзей».

Сейчас это моя функция addFriend:

export function addFriend(userID, friendID) {

  ourDB.ref(`users/${userID}/Friends`).on('value', (snapshot) => {
    var Friends = snapshot.val();

    console.log(userID)
    console.log("what up")
    console.log("type" + typeof Friends)
    console.log(Friends)
    //console.log(typeof Friends)
    //console.log(Friends.Friends)


    if(Friends && Friends.Friends){
      Friends.Friends.push(friendID);
    }
    else {
      Friends = {Friends: [friendID]}
    }

    ourDB.ref(`users/${userID}`).child('Friends').set({
          Friends
    })
  });

К сожалению, эта функция ошибка при запуске пряжи в Friends.pu sh. Я получаю сообщение: «TypeError: Friends.Friends.pu sh не является функцией»

Я не совсем уверен, почему это происходит, но в основном typeof Friends является объектом и содержит {Friends: Array (1)} один друг, которого я жестко запрограммировал.

Кроме того, вот вывод из консоли:

G7dCfxkE6rSt3RoZMmt4bpCt6rS2 (текущий идентификатор пользователя / мой идентификатор, вошедший в систему), какой тип объекта { Друзья: Array (1)}

Огромное спасибо !!

1 Ответ

0 голосов
/ 30 апреля 2020

Согласно выводу вашей консоли, Friends - это объект, у которого есть ключ с именем Friends, который содержит массив.

if(Friends && Friends.Friends){
  Friends.Friends.push(friendID);
}
else {
  Friends = {Friends: [friendID]}
}

Кроме того, в вашем блоке else присвойте объект внутреннего ключа

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