react-native
Integratie met Firebase voor authenticatie
Zoeken…
Invoering
// Vervang firebase-waarden door uw app api-waarden import firebase uit 'firebase';
componentWillMount () {firebase.initializeApp ({apiKey: "yourAPIKey", authDomain: "authDomainNAme", databaseURL: "yourDomainBaseURL", projectId: "yourProjectID", storageBucket: "storageBUcketValue", messagingSenderIdal "; firebase.auth (). signInWithEmailAndPassword (e-mail, wachtwoord). dan (this.onLoginSuccess)})}
React Native - ListView met Firebase
Dit is wat ik doe als ik met Firebase werk en ik wil ListView gebruiken.
Gebruik een bovenliggend onderdeel om de gegevens op te halen uit 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}
/>
);
}
}
Ik wil erop wijzen dat in Posts.js
, ik ben niet het importeren firebase
omdat je alleen nodig om het te importeren, in het belangrijkste onderdeel van uw project (waar je de navigator) en gebruik het overal.
Dit is de oplossing die iemand suggereerde in een vraag die ik stelde toen ik worstelde met ListView. Ik dacht dat het leuk zou zijn om het te delen.
Verificatie in reactie Native met Firebase
Vervang firebase-waarden door de waarden van uw app-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)
})
}