我是React Native的新手,有以下问题: 我以这种方式导入Firebase身份验证...
import React, { Component } from 'react';
import { Text } from 'react-native';
import { Button, Card, CardSection, Input } from './common';
import { auth } from 'firebase';
我只是将其导入我的组件中,并在登录按钮按下时使用它。
class LoginForm extends Component {
state = { email: '', password: '', error: '' };
onButtonPress() {
debugger;
const { email, password } = this.state;
auth.auth().signInWithEmailAndPassword(email, password)
.catch(() => {
auth.auth().createUserWithEmailAndPassword(email, password)
.catch(() => {
this.setState({ error: "Authentication failed." });
});
});
debugger;
}
我的App模块如下所示...在这里为我的应用程序进行一些初始化
import firebase from '@firebase/app';
import LoginForm from './components/LoginForm'
在这里我为我的应用程序进行了一些初始化
componentWillMount() {
debugger;
firebase.initializeApp({
apiKey: 'somekey',
authDomain: 'somedomain',
databaseURL: 'someurl',
projectId: 'someid',
storageBucket: 'authentication-afcb6.appspot.com',
messagingSenderId: '253116783153'
});
debugger;
}
答案 0 :(得分:1)
问题在于我的导入语句。使用Firebase时,我总是使用:
import firebase from 'firebase';
firebase.auth().<METHOD>
或者我想如果它是命名导出,也可以像这样导入它并直接使用它:
import {auth} from 'firebase';
auth().<METHOD>
也希望您确实知道还必须使用firebase.initializeApp({<CONFIG_DATA>})
来初始化应用。
答案 1 :(得分:0)
我建议使用react-native-firebase
库。它在后台使用本机Android和iOS SDK,而不是Web javascript库。
文档 https://rnfirebase.io/docs/v5.x.x/installation/initial-setup
Android安装https://rnfirebase.io/docs/v5.x.x/installation/android
答案 2 :(得分:0)
您使用的Firebase是什么版本?
将Firebase降级到5.0.3是我找到的唯一解决方案,我自己尝试了一下,它可以工作。供参考,here is the thread on firebase-js-sdk。