Firebase 实时数据库 - “错误:客户端离线”。反应/NextJS

Jos*_*van 5 javascript firebase reactjs firebase-realtime-database next.js

将 React 与 NextJS 结合使用时,从 Firebase 实时数据库获取数据时偶尔会出现以下错误。

Unhandled Runtime Error
Error: Error: Client is offline.
Run Code Online (Sandbox Code Playgroud)

我正在使用 Firebase9.0.1进行 React。

用于初始化和配置的顶级代码

import { initializeApp } from "firebase/app";
import { getDatabase, ref, onValue, child, get } from "firebase/database";
import CONFIG from '../CONFIG.json'


const FIREBASE_CONFIG = {
  apiKey: CONFIG['FIREBASE_API_KEY'],
  authDomain: CONFIG['FIREBASE_AUTH_DOMAIN'],
  databaseURL: CONFIG['FIREBASE_DATABASE_URL'],
  storageBucket: CONFIG['FIREBASE_STORAGE_BUCKET']

}
const fbApp = initializeApp(FIREBASE_CONFIG)
Run Code Online (Sandbox Code Playgroud)

然后再获取数据

export default function Leads() {
  ...

  useEffect(() => {
    const database = getDatabase(fbApp)
    const ads = ref(database, 'ad_results')

    get(ads).then((snap) => {
      const results = snap.val()
      ...
Run Code Online (Sandbox Code Playgroud)

我曾尝试搜索类似的问题,但无济于事,任何帮助将不胜感激。

Nil*_*rdt 14

我的云功能也遇到了同样的问题,这非常令人困惑。经过几个小时的调试,我发现.get()实时数据库的方法导致了这个问题。我当前的解决方法是使用.once('value').

所以我改变了我的代码:

await database.ref(`foo/bar`).get();
Run Code Online (Sandbox Code Playgroud)

await database.ref(`foo/bar`).once('value');
Run Code Online (Sandbox Code Playgroud)