Hello :)
Alors j'ai un soucis avec la connection Google de Firebase
Coté serveur j'initialise mon app firebase, et je déclenche une popup Google dans une page login, mais j'ai une erreur disant Firebase: Error (auth/api-key-not-valid.-please-pass-a-valid-api-key.)
En console les clés api de mon auth ont disparu, tout simplement :/
options: Object { apiKey: "undefined", authDomain: "undefined", databaseURL: "undefined", … }
apiKey: "undefined"
appId: "undefined"
authDomain: "undefined"
databaseURL: "undefined"
messagingSenderId: "undefined"
projectId: "undefined"
storageBucket: "undefined"
Pourtant quaund j'initialise les données sont bien affichées et fonctionnent bien :/
Voila pour le code:
// @/firebase/firebase_app
import { initializeApp, getApps, getApp } from 'firebase/app'
import { getAuth, GoogleAuthProvider } from "firebase/auth"
const firebase_config = {
apiKey: `${process.env.FIREBASE_APP_API_KEY}`,
authDomain: `${process.env.FIREBASE_APP_AUTH_DOMAIN}`,
databaseURL: `${process.env.FIREBASE_APP_DATABASE_URL}`,
projectId: `${process.env.FIREBASE_APP_PROJECT_ID}`,
storageBucket: `${process.env.FIREBASE_APP_STORAGE_BUCKET}`,
messagingSenderId: `${process.env.FIREBASE_APP_MESSAGING_SENDER_ID}`,
appId: `${process.env.FIREBASE_APP_APP_ID}`
}
const app = !getApps.length ? initializeApp(firebase_config) : getApp()
console.log(app) // Affiche les clés comme il faut
const provider = new GoogleAuthProvider()
const auth = getAuth(app)
export { app, auth, provider }
// sign_in/page
"use client"
import React from 'react'
import { signInWithPopup } from 'firebase/auth'
import { app, auth, provider } from '@/firebase/firebase_app'
class Page extends React.Component {
sign_in() {
console.log(app) // toutes les option en undefined...
console.log(auth) // toutes les options en undefined...
signInWithPopup(auth, provider).then(r => console.log(r.user)) // Renvoie le message d'erreur...
}
render() {
const user = auth.user
return (
<div>
<div>
<button onClick={ this.sign_in }>Sign In</button>
</div>
</div>
)
}
}
export default Page
Voila, quelqu'un sait d'où ça pourrait venir? ^^'
EDIT
Alors je viens de checker et le problème c'est l'env qui n'est disponible que coté serveur, mais bon passer mes clés api coté client c'est pas fou fou, y a un moyen pour faire déclencher la popup coté serveur? Ou au moins sécuriser les clés api si faut vraiment le rendre dispo coté front? :/