Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应延迟后如何调用firebase钩子?_Reactjs_Firebase_Firebase Realtime Database_React Hooks - Fatal编程技术网

Reactjs 反应延迟后如何调用firebase钩子?

Reactjs 反应延迟后如何调用firebase钩子?,reactjs,firebase,firebase-realtime-database,react-hooks,Reactjs,Firebase,Firebase Realtime Database,React Hooks,我正在添加新用户。在后端,我大约需要2秒钟才能访问我创建的新用户数据。错误的原因是访问控制。当我尝试使用firebase挂钩获取用户时,它会给我一个错误: 错误:在/users/M2uQPQRacJZxjCwxqVT0UlHcwy72拒绝了权限。\u:客户端没有访问所需数据的权限 刷新页面后,我可以访问新用户的数据,如列表所示 我想知道有没有办法在几秒钟后调用firebase钩子,这样我就不会出现这个错误 Firebase挂钩: export const useUser = userId =&

我正在添加新用户。在后端,我大约需要2秒钟才能访问我创建的新用户数据。错误的原因是访问控制。当我尝试使用firebase挂钩获取用户时,它会给我一个错误:

错误:在/users/M2uQPQRacJZxjCwxqVT0UlHcwy72拒绝了权限。\u:客户端没有访问所需数据的权限

刷新页面后,我可以访问新用户的数据,如列表所示

我想知道有没有办法在几秒钟后调用firebase钩子,这样我就不会出现这个错误

Firebase挂钩:

 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)

}

我想我不明白,但你有没有试过用效果?也许如果您使用useffect和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]);

错误的原因是什么?您是否试图在创建用户之前显示该用户?错误的原因是访问控制。在后端,我需要一些时间才能访问新用户数据。当您获得权限时,服务器是否会发出一些通知?没有,但当我刷新页面时,它会工作。后端开发人员告诉我在延迟2秒后调用该函数,然后它将正常工作。延迟不是一个好主意。
useObjectVal
做什么?