Я учусь React Native.После пошагового руководства по Линде.Я написал точно такой же код, но мое приложение все еще не работает.Вот мой код:
App.js
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
Platform,
StyleSheet,
Text,
View
} from 'react-native';
import firebase from 'firebase';
import Login from './components/Login'
type Props = {};
export default class App extends Component<Props> {
coponentWillMount(){
firebase.initializeApp({
apiKey: "xxxxxxxxxxxxxxxxxxx",
authDomain: "xxxxxxxxxx",
databaseURL: "xxxxxxxx",
projectId: "xxxxxxxxxx",
storageBucket: "",
messagingSenderId: "xxxxxxxx"
});
}
render() {
return (
<View style={styles.container}>
<Login />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
}
});
Login.js
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View
} from 'react-native';
import {MKTextField, MKColor, MKButton} from 'react-native-material-kit'
import firebase from 'firebase'
import Loader from './Loader'
const LoginButton = MKButton.coloredButton()
.withText('Login')
.build();
const styles = StyleSheet.create({
form: {
paddingBottom: 10,
width: 200,
},
fieldStyle: {
height: 40,
color: MKColor.Orange,
width: 200
},
loginButtonArea: {
marginTop: 20
},
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
errorMessage: {
marginTop: 15,
fontSize: 15,
color: 'red',
alignSelf: 'center'
}
});
export default class Login extends Component<Props> {
constructor(props){
super(props);
this.state = {
email: '',
password: '',
error: '',
loading: false
};
}
renderLoader = () => {
if(this.state.loading){
return <Loader size="large" />
} else{
return <LoginButton onPress={this.onButtonPress} />
}
}
onButtonPress = () => {
this.setState({error: '', loading: true});
firebase.auth().signInWithEmailAndPassword(email, password)
.then(this.onAuthSuccess().bind(this))
.cacth(()=>{
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(this.onAuthSuccess().bind(this))
.catch(this.onAuthFailed().bind(this))
})
}
onAuthSuccess() {
this.setState({
email: '',
password: '',
error: '',
loading: false
})
}
onAuthFailed() {
this.setState({
error: "Authentication Failed",
loading: false
})
}
render() {
const {container, form, loginButtonArea, fieldStyle, errorMessage} = styles;
return (
<View style={container}>
<MKTextField
text={this.state.email}
onTextChange={email=>this.setState({email})}
textInputStyle={fieldStyle}
placeholder="Email"
tintColor={MKColor.Teal} />
<MKTextField
text={this.state.password}
onTextChange={password=>this.setState({password})}
textInputStyle={fieldStyle}
placeholder="Password"
tintColor={MKColor.Teal}
password={true} />
<Text style={errorMessage} >
{this.state.error}
</Text>
<View style={loginButtonArea}>
{this.renderLoader()}
</View>
</View>
);
}
}
Вот сообщение об ошибке, которое я получаю
приложение firebase по умолчанию не создано - вызовите firebase app.initializeapp () (app / no-app)