Joshua Sullivan
Joshua Sullivan

Reputation: 51

Firebase Realtime Database - "Error: Client is offline". React/NextJS

Using React with NextJS the following error occurs occasionally when fetching data from a Firebase Realtime Database.

Unhandled Runtime Error
Error: Error: Client is offline.

I am using Firebase 9.0.1 for React.

Top Level code for intialisation and config

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)

And later fetching data

export default function Leads() {
  ...

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

    get(ads).then((snap) => {
      const results = snap.val()
      ...

I have tried searching similar issues but to no avail, any help would be appreciated.

Upvotes: 5

Views: 2286

Answers (2)

druidccsos
druidccsos

Reputation: 63

I am using firebase nodejs SDK, also facing the same error: "Error: Error: Client is offline." occasionally.

I have tried the above solution posted by Nils Reichardt. It works for me.

Thanks Nils!

Upvotes: 0

Nils Reichardt
Nils Reichardt

Reputation: 3599

I had the same issue with my Cloud Functions, which was very confusing. After some hours of debugging, I found out that the .get() method of the Realtime Database was causing this problem. My current workaround is to use instead .once('value').

So I changed my code from:

await database.ref(`foo/bar`).get();

to

await database.ref(`foo/bar`).once('value');

Upvotes: 15

Related Questions