Wac*_*man 5 firebase react-native expo
我正在尝试使用 firebase 在本地进行模拟,以测试我正在与 expo 合作的 React Native 应用程序。为此,我尝试将函数和 firestore 的主机设置为本地主机上的正确端口。
经过多次迭代,我终于找到了一个奇怪的导入和调用组合,没有错误。但是,当我尝试使用 expo 运行它时,我的应用程序显示为空白屏幕,没有错误。我现在很迷茫,firebase 文档也很混乱。
这是我当前的index.js:
import firebase from "firebase"
import 'firebase/firestore';
import 'firebase/functions';
import 'firebase/app';
const config = {
//config info
};
const fb = firebase.initializeApp(config);
const firestore = firebase.firestore();
const functions = firebase.functions();
if(__DEV__){
firestore.settings({
host : "localhost:9000",
ssl : false
});
functions.useFunctionsEmulator("http://localhost:5001");
}
const auth = fb.auth();
export { auth, functions, firestore }
Run Code Online (Sandbox Code Playgroud)
导入非常奇怪,我不理解它们,但我从另一个堆栈溢出线程获取它们,这是唯一使它到达文件末尾的东西。关于设置本地模拟器,我是否遗漏了一些非常明显的东西?
我可以通过以下方式让它在我的机器上工作:
import * as firebase from 'firebase';
import '@firebase/firestore';
import '@firebase/functions';
const firebaseConfig = { /* config data */ }
firebase.initializeApp(firebaseConfig);
firebase.firestore().settings({ host: "localhost:8080", ssl: false });
firebase.functions().useFunctionsEmulator('http://localhost:5001');
Run Code Online (Sandbox Code Playgroud)
在您的尝试中,我认为您的问题可能是您声明的方式:
const fb = firebase.initializeApp(config);
然后忘记使用初始化的fb--而是firebase再次使用。
尝试更改这些行:
const firestore = firebase.firestore();
const functions = firebase.functions();
Run Code Online (Sandbox Code Playgroud)
对此:
const firestore = fb.firestore();
const functions = fb.functions();
Run Code Online (Sandbox Code Playgroud)
或者直接使用firebase类而不是设置变量。
编辑:
我注意到我的 firestore 存储host值实际上设置不正确,所以我在上面编辑了它 - 我已添加http://到开头,但这不是您想要的参数。
注意 - 如果您想准确了解您的开发环境在尝试连接到本地 Firestore 时正在执行的操作,请添加以下行:
firebase.firestore.setLogLevel('debug');
| 归档时间: |
|
| 查看次数: |
1973 次 |
| 最近记录: |