react-native
인증을위한 Firebase와의 통합
수색…
소개
// firebase 값을 app api 값으로 대체합니다. firebase에서 'firebase'가져 오기;
당신의 APIID : "yourAPIKey", authDomain : "authDomainNAme", databaseURL : "yourDomainBaseURL", projectId : "yourProjectID", storageBucket : "storageBUcketValue", messagingSenderId : "senderIdValue"}); firebase.auth (). signInWithEmailAndPassword (이메일, 비밀번호) .then (this.onLoginSuccess)}}}
React 네이티브 - Firebase를 사용한 ListView
이것은 내가 Firebase로 작업 할 때 ListView를 사용하고자 할 때하는 일입니다.
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}
/>
);
}
}
Posts.js
에서 firebase
가져 Posts.js
것을 지적하고 싶습니다. 프로젝트의 주요 구성 요소 (네비게이터가있는 곳)에서 한 번만 가져 와서 어디서나 사용해야하기 때문입니다.
이것은 누군가 내가 ListView에 어려움을 겪고있을 때 묻는 질문에서 제안한 해결책입니다. 나는 그것을 공유하는 것이 좋을 것이라고 생각했다.
Firebase를 사용한 네이티브 기본 인증
firebase 값을 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)
})
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow