'Firebase - Failed to get document because the client is offline (v9 Upgrade)

Recently upgraded to firebase v9 from v8 in my React Native project and I am now unable to use my legacy v8 firestore methods.

The error I am receiving is:

[Unhandled promise rejection: FirebaseError: Failed to get document because the 
client is offline.]

I initialize firebase in a file I call fire-config.js. The commented //import firebase from 'firebase'; is how I previously imported firebase in v8.

I then would import fire from fire-config.js into my controller methods. Ex: userController.js.

I tried a couple different combinations of /compat and /compat/app to no avail. I was following the upgrade guide (https://firebase.google.com/docs/web/modular-upgrade) which my understanding was update the path and that was all that was needed.

Package.json:

"firebase": "9.0.2",

fire-config.js

//import firebase from 'firebase';
import firebase from 'firebase/compat'; 
require("firebase/functions");
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
    apiKey: "XXXXX",
    authDomain: "XXXXX",
    databaseURL: "XXXX",
    projectId: "XXXX",
    storageBucket: "XXXX",
    messagingSenderId: "XXXXX",
    appId: "XXXX",
    measurementId: "XXXXX"
  };
try {
  firebase.initializeApp(firebaseConfig);
} catch(err){
  if (!/already exists/.test(err.message)) {
    console.error('Firebase initialization error', err.stack)}
}
const fire = firebase;
export {fire};

userController.js

import {fire} from "../config/fire-config";

const getUserDetail = async (user) => {
  let userDetail = {};

  await fire
    .firestore()
    .collection("users")
    .doc(user.uid)
    .get()
    .then((doc) => {
      if (doc.exists) {
        userDetail = {
          id: doc.id,
          ...doc.data(),
        };
      }
    });

  return userDetail;
};


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source