2016-08-29 9 views
0

普及したblogに掲載されているサンプルのネイティブfirebaseアプリを実装しようとしていました。React-NativeのAndroid AppでFirebaseの接続を接続/デバッグする方法

私の初期化が次のようになります。

const firebaseConfig = { 
    apiKey: "AIzaSyDKTvsqGoMn9ksXxaujXqciM2M5R0tuZlw", 
    authDomain: "my-awesome-project-a8216.firebaseapp.com", 
    databaseURL: "https://my-awesome-project-a8216.firebaseio.com", 
    storageBucket: "my-awesome-project-a8216.appspot.com", 
}; 
const firebaseApp = firebase.initializeApp(firebaseConfig); 

私のコードは次のようになります。上記のコードで

 constructor(props) { 
     super(props); 
     this.state = { 
     dataSource: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}) 
     }; 
     this.itemsRef = this.getRef().child('items'); 
    } 
    getRef() { 
     console.log("Reference "+firebaseApp.database().ref().child('items')); 
     return firebaseApp.database().ref(); 
     } 

    componentDidMount() { 
     this.listenForItems(this.itemsRef); 
     } 
    _renderItem(item) { 
     return (
     <ListItem item={item} onPress = {() => { 

     }}/> 
    ); 

    } 

    listenForItems(itemsRef) { 
     console.log("Came 1"); 

    itemsRef.on('value', (snap) => { 
     console.log("Came Here"); 

     // get children as an array 
     var items = []; 
     snap.forEach((child) => { 
     console.log("my data "+ child.key); 
     items.push({ 
      title: child.val().title, 
      _key: child.key 
     }); 
     }); 

     this.setState({ 
     dataSource: this.state.dataSource.cloneWithRows(items) 
     }); 

    }); 
    } 

listenForItems機能で2つのconsole.logデバッグ文があります。私はクロームコンソール上で「1来た」と表示されていない参照

console.log("Came 1"); 
console.log("Came Here"); 

はクロームコンソールのネットワークタブがコードで参照firebase URLへのアウトバウンドコールを表示しません 「ここに来ました」。 コンソールにエラーがないので、何が起こっているのかをデバッグする手がかりが残っていません...

すべての回答をいただきありがとうございます。ありがとう:)

+0

はgetRef()メソッドではconsole.logが呼び出されるのか?を参照してください

// These rules give anyone, even people who are not users of your app, // read and write access to your database { "rules": { ".read": true, ".write": true } } 

// These rules require authentication { "rules": { ".read": "auth != null", ".write": "auth != null" } } 

を交換してくださいそれは何と言いますか? –

+0

はい、あります。これを参照してください:参考https://my-awesome-project-a8216.firebaseio.com/items –

答えて

2

より簡単にデバッグしたい場合は、firebase confの直後にfirebase.database.enableLogging(true);を実行できます。

Firebase 3.3は、反応ネイティブとの統合に問題があるようです。 修正がリリースされるのを待って、あなたはチュートリアルで使用したのと同じ依存関係にダウングレードすることができます。

"dependencies": { 
    "firebase": "^3.1.0", 
    "react": "15.2.1", 
    "react-native": "^0.29.0" 
} 

これが今のあなたの問題を修正する必要があります。

また、firebaseの設定でパブリックアクセスが許可されていることを確認してください。プロジェクト>データベース>ルールに進みます。

このhttps://firebase.google.com/docs/database/security/quickstart

+0

こんにちは、それは役に立たなかった。まず、AppとFirebaseの間にアクティブなネットワークトラフィックはありません。興味深いもの: –

+0

私はあなたのコードを私のマシンに再現し、それを解決しました。反応しているネイティブ/ファイアベースのバージョンはどのバージョンですか? –

+0

Firebase 3.3.0およびReact-Native 0.32。より良い外観のために私のGIT Repoのリンクがここにあります。どうかチェックしてみてください。 https://github.com/mva1991/AwesomeProject –

関連する問題