首页 > 解决方案 > 在本机反应中识别firebase身份验证和数据库查询超时

问题描述

问题背景

我所说的这个应用程序是使用 react native 开发的。

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

问题

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

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

笔记

使用 netinfo 我可以找到用户是否已连接到互联网。但如果firebase url被路由器阻止,则不会。所以我期待一个解决方案。

标签: firebasereact-nativefirebase-realtime-databasefirebase-authenticationtimeout

解决方案


如果网站被路由器/防火墙阻止,请求响应将是403: Forbidden

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

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

推荐阅读