javascript - 未在数据库.on 方法中调用回调
问题描述
我正在使用 react-native-firebase 包、react-native 和 redux。当我试图通过从 firebase 数据库中获取任务来初始化数据时。我正在从我的反应组件的 componentDidMount() 方法中调用异步 redux 操作。
componentDidMount() {
let uid = null;
if (this.props.sessionState.authUser) {
uid = this.props.sessionState.authUser.uid;
}
this.props.fetchToDos(uid);
}
在第一次构建 React Native 应用程序时一切正常,但是当我保存并重新加载时,由于某种原因,我的 db 调用的回调没有被调用,并且在我完全重建我的应用程序之前它一直没有被调用。再次,它在应用程序的第一次加载时运行良好。
这是对数据库的调用:
export const fetchToDos = (uid) => async dispatch => {
var userId = firebase.auth().currentUser.uid;
database.ref().child('users/' + userId + '/tasks/').on('value', snapshot => {
console.log('INSIDE');
dispatch({
type: 'FETCH_TASKS',
payload: snapshot.val()
});
})
};
我正在从网络上移植我的应用程序,这段代码与我的网络应用程序完美配合。
解决方案
这个 Github issue似乎是你的问题,我认为你应该看看。祝你好运!
推荐阅读
- php - 如何使用 Ajax-Php 处理多个表单
- here-api - 这里 Map Javascript SDK 在手机的 Angular App 中运行,但性能太差了。如何提高手机设备(iPhone 6)的性能?
- sql - 提高 Spark SQL 中处理数十亿行数据的性能
- r - imap_dfr 3 个带有嵌套地图的列表的函数?
- c - C结构的内存布局
- php - 谷歌云打印停止工作(以前工作正常)
- c# - C# 无法反序列化 xml 以返回通用列表
- python - 在 Python 中扩展一个已经存在的对象
- java - 使用 mockito 发送请求时模拟 WebClient
- java - Java 11 谓词 lambda 表达式泛型类型 ClassCastException