javascript - 如何在 react-native 中检索 firebase 数据
问题描述
我试图从 firebase 数据库中获取数据,我很好地获取了数据,但是当我尝试推送数组中接收到的所有项目时,我获得了一个数组,我无法像任何其他 javascript 数组一样迭代该数组。这是我的代码:
var li = [];
useEffect(() => {
firebaseDB
.database()
.ref("collection")
.on("value", (data) => {
let all = data;
all.forEach((element) => {
li.push(element.val());
});
});
}, []);
console.log(li);
当我这样做时console.log(li)
,我得到的li
数组看起来对数据没问题,但是当我尝试对数组做一些事情时,例如如果我这样做console.log(li.length)
,它会打印0
出数组中有多个项目。问题是我li
的数组不像数组。请帮助我找出问题所在
解决方案
你不能像那样推送数据。试试这个代码。
const [arr,setArr] = useState([]);
useEffect(()=>{
firebaseDB
.database()
.ref("collection")
.on("value", (snapshot) =>{
let data = [];
snapshot.forEach((child)=>{
data.push(child.val());
})
setArr(data);
});
},[])
推荐阅读
- python - 生成每行中具有上限和下限的二进制随机矩阵?
- typescript - 确定类型取决于接口中其他键的值(TypeScript)
- javascript - Sinusbot 脚本:如何检测客户端何时在频道中移动?
- javascript - 如何在 javascript 中读取 cvs 文件并将它们存储在地图中?
- regex - 正则表达式从 url 中提取链接
- django - 在尝试将我的 django 应用程序部署到 heroku 时,我不断收到错误消息:[远程拒绝] master -> master (pre-receive hook denied)
- java - Netbeans 中有没有一种方法可以轻松启动程序的多个实例?
- java - 游戏机:我应该为应用内购买推出内部测试吗?
- html - Favicon 不会显示在视图源或图像中。(本地主机铬)
- delphi - 为什么使用 GetTempPath/GetTempFileName 时顺序很重要?