应用超时或在react-native中进入后台后,firebase.database()失败

时间:2019-07-17 22:10:19

标签: javascript firebase react-native react-native-firebase

我注意到有时在我的应用程序中,使用firebase.database()时无法获取任何数据,而firebase.auth()可以正常工作并且用户已通过身份验证。重新启动应用程序将使其能够正常获取数据,但这对用户来说将是一个问题。在调试时以react-native方式重新加载时,也会发生这种情况。此行为在Android和iOS中都会发生。

我该如何解决这个问题,或者我做错了什么?

我用于获取数据的代码:

 componentDidMount() {
    this.autoFetchContacts()
  }

autoFetchContacts = async () => {
    let contacts = []
    let currentUser = firebase.auth().currentUser
    if(currentUser) {
      let userUID = currentUser.uid
      await firebase.database().ref().child("registered_contacts").orderByChild("uid").equalTo(userUID).on("value", async (usersSnaps) => {
        console.log("UsersSnaps: ", usersSnaps)
        usersSnaps.forEach(async userSnap => {
            await userSnap.child("contacts").ref.once("value").then((contactsSnaps) => {
              contactsSnaps.forEach(contactSnap => {
                let contact = contactSnap.val()
                console.log("contact: ", contact)
                contact["key"] = contactSnap.key
                contacts.push(contact)
              })
              contacts = this.filter(contacts, this.state.searchText)
              console.log("Filtered contacts: ", contacts)
              this.setState({contacts: contacts})
            })
          })
        })
    }

  }

除非重新启动应用程序,否则不会输出代码行:

console.log("UsersSnaps: ", usersSnaps)

0 个答案:

没有答案