在React Native中识别Firebase身份验证和数据库查询超时

时间:2018-10-14 15:15:22

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

问题背景

我正在谈论的这个应用是使用react native开发的。

在我正在开发的应用中,有两种使用firebase的方法。一种是查询数据库以获取一些数据,另一种用于Firebase身份验证。

问题

当我调用firebase.database()函数和firebase.auth()函数时,可能存在网络连接问题,例如路由器阻止firebase请求。在这种情况下,firebase函数需要答复,但不会收到答复。关于该应用程序,这将是一个巨大的用户体验问题。

有没有一种方法可以确定超时并为用户提供一些更改网络或执行某些操作的通知?

注意

使用netinfo可以查找用户是否已连接到Internet。但是如果Firebase网址被路由器阻止,则不会。因此,我期待一个解决方案。

1 个答案:

答案 0 :(得分:0)

如果网站被路由器/防火墙阻止,则请求响应将为 403:禁止访问

您可以使用fetch()对其进行测试,并通知用户响应为403。

fetch('https://yourfirebasetestendpoint')
    .then((response) => {
      console.log(response.status)
      if(response.status === 403){
         // The firebase is blocked
      }
    })
    .catch((error) => {
      console.error(error);
    });