firebase - React Native Firebase 身份验证功能
问题描述
我正在使用使用 firebase 实时存储的 react native crud 应用程序。我将 firebase 身份验证功能与电子邮件和密码记录一起使用。但我的 Firebase 身份验证不起作用。firebase 连接会出现更多问题。我用这个功能来连接firebase。
componentWillMount() {
firebase.initializeApp({
apiKey: 'xxxxxxxxxxxxxxxxxxxxxxxx',
authDomain: 'xxxxxxxxxxxxxxxxxxxxxx',
databaseURL: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
projectId: 'xxxxxxxxxxxxxxxxxxxxx',
storageBucket: 'xxxxxxxxxxxxxxxxxxxxxxxx',
messagingSenderId: 'xxxxxxxxxxxxxxx'
});
}
我的登录按钮身份验证功能如下所示:
state = { email: '', password: '', error: '' };
onButtonPress() {
const { email, password } = this.state;
firebase.auth().signInWithEmailAndPassword(email, password)
.catch(() => {
firebase.auth().createUserWithEmailAndPassword(email, password)
.catch(() => {
this.setState({ error: 'Authenticaton Failed.' });
});
});
}
我像这样导入firebase库:
import * as firebase from 'firebase';
import 'firebase/firestore';
import 'firebase/auth';
但是这种配置不起作用。它向我显示了这个错误:
undefined is not a function (evaluating 'firebase.auth()')
我曾经通过这种方法获取文本输入值:
value={this.state.password}
onChangeText={password => this.setState({ password })}
解决方案
您的 firebase 配置仅存在于您的componentDidMount
. 试试这样:在任何你想要的地方
创建一个文件并添加:<namefile>.js
import * as firebase from 'firebase'
import 'firebase/auth';
const config = {
apiKey: "your key",
authDomain: "domain",
databaseURL: xxxx",
projectId: "xxxx",
storageBucket: "xxx",
messagingSenderId: "xxxx"
};
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
const auth = firebase.auth();
export {
auth
};
在您的组件中导入auth
并在您的按钮方法中通过以下方式更改您的代码:
auth.signInWithEmailAndPassword
它应该可以工作,每次你需要使用auth
时,你只需要导入它
推荐阅读
- python - 散景悬停突出显示的边缘随鼠标移动而变化
- javascript - 从嵌套对象创建无序列表树 - JavaScript
- html - HTML/CSS(以 PDF 格式呈现)在第一页的页脚之后显示第二页
- python-3.x - 使用 TTLCache::cachetools
- python - 从 Yocto 构建 aiortc 库(Python)
- spring-boot - 如何根据任意 http 标头创建主体?
- yaml - 将值从一个文件(加密)传递给 yaml,其中包含 yaml
- python - 如何在 python 文件中设置 PYTHONHASHSEED
- python - 如何总结具有多个条件的元组列表中的最后一个数字/元素?
- javascript - IONIC 错误 TS2488:类型“对象”必须具有返回迭代器的“[Symbol.iterator]()”方法