수색…


소개

// 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에 어려움을 겪고있을 때 묻는 질문에서 제안한 해결책입니다. 나는 그것을 공유하는 것이 좋을 것이라고 생각했다.

출처 : [ http://stackoverflow.com/questions/38414289/react-native-listview-not-rendering-data-from-firebase][1]

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