Как вызвать firebase hook после некоторой задержки в реакции? - PullRequest
0 голосов
/ 25 октября 2019

Я добавляю новых пользователей. На сервере требуется около 2 секунд, чтобы дать мне доступ к новым пользовательским данным, которые я создал. Причиной ошибки является контроль доступа. Когда я пытаюсь получить пользователя, использующего перехватчик firebase, он выдает мне ошибку:

Ошибка: access_denied в / users / M2uQPQRacJZxjCwxqVT0UlHcwy72: Клиент не имеет разрешения на доступтребуемые данные.

После обновления страницы я могу получить доступ к данным нового пользователя, и они отображаются в списке.

Я хотел бы знать, есть ли какой-либо способчерез несколько секунд вызвать firebase hook, чтобы я не получил эту ошибку?

Firebase hook:

 export const useUser = userId => {
   if (!userId) {
      return [null, false]
   }
   const ref = firebase.database().ref(`users/${userId}`)
   return useObjectVal(ref)
 }

использование:

import { useUser } from '../../hooks/firebase-hooks'

function TeamMemberListItem(props) {

  const userId = props.userId
  const [user, loading, error] = useUser(userId)

}

1 Ответ

1 голос
/ 25 октября 2019

Не думаю, что понял, но вы пробовали использовать useEffect? может быть, если вы используете useEffect с userId в качестве второго параметра?

import React, { useEffect } from 'react';

useEffect(() => {
 // do something when the component is mounted or userId is updated

 setInterval(() => {
   // do something 2 seconds after the component is mounted or userId is updated
 }, 2000);
}, [userId]);
...