firebase - 如何在 redux 钩子中使用 useDispatch 调度异步函数
问题描述
我正在尝试从 firebase 数据库中获取所有用户,然后将它们设置为状态,但我allUsers
在减速器/状态中变得空了。如何解决这个问题?
export const get_all_users = () => {
var allUsers = [];
database()
.ref('/')
.child('Users')
.on('child_added', (data) => {
// console.log('det all user', data.val());
allUsers.push(data.val());
// console.log('all user', allUsers);
});
{* ----- getting empty allusers array here -----*}
return {
type: 'set_all_users',
payload: {data: allUsers},
};
};
在return
我得到allUsers
变量的空值之前。
解决方案
试试这个代码。从那里您可以将所有用户获取到一个名为 allUsers 的数组,然后您可以分派它。
export const get_all_users = () => {
firebase.database()
.ref('/')
.child('Users')
.on('child_added', (snapshot) => {
const allUsers = [];
snapshot.forEach((child) => {
allUsers.push(child.val());
});
});
};
推荐阅读
- google-sheets - 谷歌表格中的条件替换
- javascript - 使用 javascript adn prisma 从 mysql 数据库填充 sqlite 数据库
- mongodb - 在没有 for 循环的情况下更新多个文档 MongoDB
- puppet - fqdn 的 Puppet fact 不返回完全限定的域名
- svn - 无法与 Windows 服务器上的存储库连接,可能我需要身份验证?
- javascript - 使用节点 js 在 mongodb 中可选地向模式添加数据
- linux - 在 apache 上找不到 Ubuntu 20.04 laravel 子目录
- python - 定位 tkinter 小部件时遇到问题
- javascript - React JS autoComplete =“off”不起作用---Chrome
- powershell - PowerShell 高级函数-参数绑定