在React Native中使用Firebase会显示计时器警告

vij*_*yst 7 android websocket firebase react-native

我正在使用Firebase和React Native.Firebase向我显示了一个计时器警告,如屏幕截图所示.

在此输入图像描述

我在React Native故障排除指南中阅读了以下注释.

React Native为WebSockets实现了一个polyfill.这些polyfill初始化为您通过从'react'导入React包含在应用程序中的react-native模块的一部分.如果您加载另一个需要WebSockets的模块,例如Firebase,请确保在react-native之后加载/要求它:

import React from 'react';
import Firebase from 'firebase';
Run Code Online (Sandbox Code Playgroud)

我尝试在Firebase之前导入React.但是,我仍然不断收到这些计时器警告.该应用程序工作正常.我会定期收到多个警告.任何帮助将不胜感激.

我使用的是最新的React Native,警告来自Android模拟器.

hap*_*cky 7

要解决此问题,只需增加变量MAX_TIMER_DURATION_MS的值即可。步骤如下:

  1. 转到node_modules / react-native / Libraries / Core / Timer / JSTimers.js

  2. 查找变量MAX_TIMER_DURATION_MS

  3. 将Firebase所需的60 * 1000更改为10000 * 1000

  4. 保存更改并重新构建您的应用程序。

  • 应用程序源代码中是否可以执行此操作?有时我必须删除`node_modules` (3认同)
  • 这不是一个解决方案。这只是跳过错误并需要更改node_modules。通过 `YellowBox.ignoreWarnings([`为`设置计时器`])` 可以实现相同的目的(并且更好)!然而,在 Firebase 中不使用 setTimeout 将是一个真正的解决方案 (2认同)

Sal*_*kar 1

您还可以通过包装器切换到本机 SDK,它通常具有更高的性能,因为它是本机完成的,因此没有计时器警告,而且您不仅可以访问身份验证和数据库模块。

React-native-firebase就是这样的包装器之一,它目前支持 10 多个 Firebase 模块:

支持的模块表

免责声明:上述内容的作者。