react-native
Intégration avec Firebase pour l'authentification
Recherche…
Introduction
// Remplacez les valeurs de la base de feu par les valeurs de votre application api importez la base de données depuis 'firebase';
componentWillMount () {firebase.initializeApp ({apiKey: "yourAPIKey", authDomain: "authDomainNAme", databaseURL: "yourDomainBaseURL", ID du projet: "yourProjectID", storageBucket: "storageBUcketValue", messagingSenderId: "senderIdValue"}); firebase.auth (). signInWithEmailAndPassword (email, mot de passe) .then (this.onLoginSuccess)})}
React Native - ListView avec Firebase
C'est ce que je fais lorsque je travaille avec Firebase et que je veux utiliser ListView.
Utilisez un composant parent pour récupérer les données de Firebase (Posts.js):
Posts.js
import PostsList from './PostsList';
class Posts extends Component{
constructor(props) {
super(props);
this.state = {
posts: []
}
}
componentWillMount() {
firebase.database().ref('Posts/').on('value', function(data) {
this.setState({ posts: data.val() });
});
}
render() {
return <PostsList posts={this.state.posts}/>
}
}
PostsList.js
class PostsList extends Component {
constructor(props) {
super(props);
this.state = {
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2
}),
}
}
getDataSource(posts: Array<any>): ListView.DataSource {
if(!posts) return;
return this.state.dataSource.cloneWithRows(posts);
}
componentDidMount() {
this.setState({dataSource: this.getDataSource(this.props.posts)});
}
componentWillReceiveProps(props) {
this.setState({dataSource: this.getDataSource(props.posts)});
}
renderRow = (post) => {
return (
<View>
<Text>{post.title}</Text>
<Text>{post.content}</Text>
</View>
);
}
render() {
return(
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
enableEmptySections={true}
/>
);
}
}
Je tiens à souligner que dans Posts.js
, je Posts.js
pas de firebase
car il vous suffit de l'importer une fois, dans le composant principal de votre projet (où se trouve le navigateur) et de l'utiliser n'importe où.
C'est la solution que quelqu'un a suggérée dans une question que j'ai posée quand je me débattais avec ListView. Je pensais que ce serait bien de le partager.
Authentification dans React Native avec Firebase
Remplacez les valeurs de la base de feu par les valeurs de votre application api:
import firebase from 'firebase';
componentWillMount() {
firebase.initializeApp({
apiKey: "yourAPIKey",
authDomain: "authDomainNAme",
databaseURL: "yourDomainBaseURL",
projectId: "yourProjectID",
storageBucket: "storageBUcketValue",
messagingSenderId: "senderIdValue"
});
firebase.auth().signInWithEmailAndPassword(email, password)
.then(this.onLoginSuccess)
.catch(() => {
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(this.onLoginSuccess)
.catch(this.onLoginFail)
})
}