2 votes

Comment puis-je corriger l'erreur "window is not defined"?

Comment puis-je réparer l'erreur "window is not defined" lors de l'utilisation de Firebase dans mon projet SvelteKit ? Je ne peux pas le mettre sur mount à cause d'autres raisons et j'essaie de contourner cela. Des idées ou y a-t-il un moyen pour moi de mettre l'initialisation en on mount et d'envoyer quand même les données en dehors de mount ?

      // Importez les fonctions dont vous avez besoin des SDK que vous utilisez
      import { initializeApp } from "firebase/app";
      import { getAnalytics } from "firebase/analytics";
      import { getFirestore } from "firebase/firestore";
      import { onMount } from 'svelte';
      import { collection, addDoc } from "firebase/firestore"; 
      // TODO: Ajoutez les SDK des produits Firebase que vous souhaitez utiliser
      // https://firebase.google.com/docs/web/setup#available-libraries

      // Configuration de votre application web Firebase
      // Pour Firebase JS SDK v7.20.0 et ultérieur, measurementId est facultatif
      let song = 'song';

      const firebaseConfig = {

      };

      const app = initializeApp(firebaseConfig);
      const analytics = getAnalytics(app);
      const db = getFirestore(app);
      async function sendSong(){
      try {
        const docRef = await addDoc(collection(db, "songs"), {
          title: {song},
          atist: "test"
        });
        console.log("Document written with ID: ", docRef.id);
      } catch (e) {
        console.error("Error adding document: ", e);
      }
      }

2voto

pohadkove Points 67

Cela a fonctionné pour moi

      // Importez les fonctions dont vous avez besoin des SDK que vous avez besoin
      import { initializeApp } from "firebase/app";
      import { getAnalytics } from "firebase/analytics";
      import { getFirestore } from "firebase/firestore";
      import { onMount } from 'svelte';
      import { collection, addDoc } from "firebase/firestore"; 
      import { Notyf } from 'notyf';
        import 'notyf/notyf.min.css'; // pour React, Vue et Svelte
      // TODO: Ajoutez les SDK des produits Firebase que vous souhaitez utiliser
      // https://firebase.google.com/docs/web/setup#available-libraries

      // Configuration de votre application web Firebase
      // Pour Firebase JS SDK v7.20.0 et versions ultérieures, le measurementId est facultatif
      let song ;
      let artist ;
      let db;
      onMount(() => {
      const firebaseConfig = {
        //redacted
      };

      const app = initializeApp(firebaseConfig);
      const analytics = getAnalytics(app);
      db = getFirestore(app);

    });

    async function sendSong(){
      try {
        const docRef = await addDoc(collection(db, "songs"), {
          song: {song},
          atist: {artist}
        });
        console.log("Document written with ID: ", docRef.id);
      } catch (e) {
        console.error("Error adding document: ", e);
      }
      }

      Soumettre une chanson

      Soumettre le formulaire

        .margin{
          margin-top: .5em;
        }
        .main{
          margin: 4em;
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X