Skip to content

Currently you are not able to use auth module without a service account #1510

@tux2nicolae

Description

@tux2nicolae

Reproduction

const adminAuth = getAdminAuth(firebaseAdminApp)

Steps to reproduce the bug

  1. Enable auth module
  vuefire: {
    auth: {
      enabled: true,
    },
    ...
  }
  1. Make sure you don't have the GOOGLE_APPLICATION_CREDENTIALS set

  2. Run npm run dev or build for production

Expected behavior

You should be allowed to use auth module without a service account

Actual behavior

You get this error when using the auth module without a service account specified.

The default Firebase app does not exist. Make sure you call initializeApp() before using any of the Firebase services


I think the problem comes from here

const adminAuth = getAdminAuth(firebaseAdminApp)

the getAdminAuth() is always called regardless of the fact you may not have a service account.

If you move the const adminAuth = getAdminAuth(firebaseAdminApp) inside the if block if (auth.currentUser?.uid !== uid) the problem goes away, or maybe it should be here

addPlugin(resolve(runtimeDir, 'auth/plugin-authenticate-user.server'))

to add a if block if (nuxt.options.ssr && hasServiceAccount)

Additional information

Our use case is that, we don't have a service account because we don't need to render anything on the server based on authentication state, we are only using authentication on client side in some <client-only /> components

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions