使用:React Native with expo
react-redux:5.0.6
还原:3.7.2
火力基地:4.9.0
(请参阅下面的修复:降级到 firebase 4.6.2)
更新:这是一个更长的问题,因为有人怀疑 redux 不能很好地与 firebase 配合使用。但情况似乎并非如此。只保留相关部分
这是一个与 redux 相关的动作创建者。在firebase.auth().signInWithEmailAndPassword()这里使用时,一切正常。
动作.js
import firebase from 'firebase'
import 'firebase/firestore'
export const dataFetch = () => {
return (dispatch) => {
firebase.auth().signInWithEmailAndPassword('a@b.com', 'passw')
.then(
(result => dispatch({ type: 'DATA_FETCH_SUCCESS', payload: result })),
(() => alert("got here"))
)
.catch((err) => alert(err))
}
};
但是在使用时firebase.firestore().collection(...).get(),执行不会进入部件内部then()- 无法在其中记录任何内容。
import firebase from 'firebase'
import 'firebase/firestore'
export const dataFetch = () => {
return (dispatch) => {
firebase.firestore().collection('MyCollection').get()
.then(
(result => dispatch({ type: 'DATA_FETCH_SUCCESS', payload: result })),
(() => alert("got here"))
)
.catch((err) => alert(err))
}
};
可能是什么问题?有没有具体的方法来传递收集路径?firebase 配置可能不正确吗?我仔细检查了一切,看起来是正确的。我正在使用 Web 应用程序的配置。是否有特定于 firestore 的东西可能会丢失?
我的 firebase 配置中有以下键:
apiKey: '', // Auth / General use
authDomain: '', // Auth with popup/redirect
databaseURL: '', // Realtime Database
storageBucket: '', // Storage
messagingSenderId: '',// Cloud Messaging
projectId: '', // Firestore