Firebase на 'child_added' срабатывает на componentDidMount - PullRequest
0 голосов
/ 18 июня 2019

Итак, у меня есть сайт с разделом friends list. Компонент выполняет всю работу, связанную с отображением каждого друга, добавлением новых друзей и т. Д.

Я использую firebase в качестве базы данных, и когда новый пользователь добавляет другого в качестве своего друга, я хочу что-то сделать. Это делается путем получения нового запроса на добавление в друзья в БД.

Друг запрашивает объект в dB выглядит примерно так:

9vOBzwFnMPQOwubtBivM4sPRItH2{

    friendRequests{
         8lSEE4m6zJP75GQLzslMnjHjtlu2: 'test'
    }

    .
    .
    .
}

Это то, что я использую для прослушивания:

 database.ref(`/users/${userId}/friendRequests`).limitToLast(1).on('child_added', function (snapshot) {
//some code
}

Проблема в том, что эта функция срабатывает, даже когда мой компонент монтируется. Я не хочу этого, только когда что-то новое добавлено в раздел friendRequests.

Я включил его в ловушку useEffect, которая срабатывает только при монтировании, но я пробовал просто поместить его в тело компонента (так, чтобы оно не было в какой-либо функции), но он по-прежнему срабатывает.

Почему это происходит и как я могу решить эту проблему?

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