如何在React-Native Android应用程序上连接/调试Firebase连接

时间:2016-08-29 14:13:03

标签: firebase react-native firebase-realtime-database

我正在尝试在热门的blog中发布示例react-native 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)
      });

    });
  }

在上面的代码中,console.log函数中有两个listenForItems调试语句。

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

我看到&#34;来了1&#34;在Chrome控制台上,看不到&#34;来到这里&#34; Chrome控制台中的“网络”选项卡不会显示对代码中引用的firebase网址的任何出站调用。 控制台上没有任何错误,因此我无法调查正在进行的调查......

我感谢您的所有答案。谢谢:))

1 个答案:

答案 0 :(得分:2)

如果您想更轻松地进行调试,可以在firebase conf之后立即执行firebase.database.enableLogging(true);

Firebase 3.3似乎无法与react-native集成。 等待发布修复程序,您可以降级到教程中使用的相同依赖项:

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

现在应该解决你的问题。

还要确保您在firebase设置中允许公共访问。转到项目&gt;数据库&gt;规则。

替换

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

// 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
  }
}

请参阅此https://firebase.google.com/docs/database/security/quickstart