Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Probleme Firebase Database
#1
Hallo zusammen,

ich bin neu in der JS Programmierung und ich hoffe hier noch einiges zu lernen.

Hier habe ich mein erstes Problem wo ich eure Hilfe bräuchte. Hier der Code

Code:
  // Import the functions you need from the SDKs you need
  import { initializeApp } from "https://www.gstatic.com/firebasejs/10.11.0/firebase-app.js";
  import { getAuth, createUserWithEmailAndPassword } from "https://www.gstatic.com/firebasejs/10.11.0/firebase-auth.js";
  import { getDatabase, ref, set } from "https://www.gstatic.com/firebasejs/10.11.0/firebase-database.js";

  // TODO: Add SDKs for Firebase products that you want to use
  // https://firebase.google.com/docs/web/setup#available-libraries
  // Your web app's Firebase configuration
  const firebaseConfig = {
    apiKey: "XXXXXXXXXXXXXXXXXXXX,
    authDomain: "XXXXXXXXXXXXXXXXXXXX",
    projectId: "XXXXXXXXXXXXXXXXXXXX",
    storageBucket: "XXXXXXXXXXXXXXXXXXXX",
    messagingSenderId: "XXXXXXXXXXXXXXXXXXXX",
    appId: "XXXXXXXXXXXXXXXXXXXX"
  };
  // Initialize Firebase
  const app = initializeApp(firebaseConfig);
  //submit button
  const registration = document.getElementById('registration');
  registration.addEventListener("click", function (event) {
    event.preventDefault();

  //inputs
  const email = document.getElementById('email').value;
  const password = document.getElementById('password').value;
  const name = document.getElementById('name');
  const prename = document.getElementById('prename');
  function AddData(){
    const db =getDatabase();
    set(ref(db, 'user/' + name), {
        name: name.value,
        prename: prename.value,
    })
    .then(()=>{
      alert("Daten wurden erfolgreich übermittelt");
    })
    .catch((error)=>{
      alert("Unsuccssful")
    })
  }
  const auth = getAuth();
 
  createUserWithEmailAndPassword(auth, email, password)
    .then((userCredential) => {
      // Signed up
      const user = userCredential.user;
      alert("Benutzer wurde erstellt")
      // ...
    })
    .catch((error) => {
      const errorCode = error.code;
      const errorMessage = error.message;
      alert(errorMessage)
      // ..
    });
  })

Die Authentifizierung funktioniert, jedoch nicht das eintragen der Daten auf Firebase Database. Sieht jemand evtl was ich falsch mache?

Danke euch vorab.

Viele Grüsse

Primo
Zitieren
#2
Hallo Primo und willkommen im Forum!

Zunächst mal sehe ich da ein fehlendes Hochkomma in dieser Zeile:

apiKey: "XXXXXXXXXXXXXXXXXXXX,

aber da Du schreibst, dass die Authentifizierung funktioniert, nehme ich an, dass es bei der Übertragung in das Posting verloren gegangen ist.

Und was funktioniert jetzt genau nicht? Läuft das createUserWithEmailAndPassword durch und Du bekommst die Meldung "Benutzer wurde erstellt"?
Von einem Eintrag in die Datenbank sehe ich nur die Definition der Funktion addData aber keinen Aufruf.
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
Zitieren
#3
@Sempervivum

Danke für deine Antwort.
Oh ja das Hochkomma ging beim übertragen verloren :S

genau das "createUserWithEmailAndPassword" geht durch und ich kriege auch die Meldung "Benutzer wurde erstellt".

Ah ich dachte über den addEventListener würde ich beide Funktionen der Reihe nach ablaufen lassen.

Kannst du mir sagen was ich am Code den noch hinzufügen müsste? Wie gesagt ich bin neu :S

VG Primo
Zitieren
#4
Sehr zuverlässig kann ich dir keinen Rat geben, da meine Kenntnisse, was Firebase betrifft, stark begrenzt sind. Aber auch ohne solche Kenntnisse ist offensichtlich, dass die Funktion AddData nicht aufgerufen wird. Und da Vor- und Nachname schon bereit stehen, gehe ich davon aus, dass Du sofort nach dem Erzeugen des Benutzers diese Daten weg schicken willst. Das musst Du dann im then-Zweig des Aufrufs von createUserWithEmailAndPassword tun:
Code:
            createUserWithEmailAndPassword(auth, email, password)
                .then((userCredential) => {
                    // Signed up
                    const user = userCredential.user;
                    alert("Benutzer wurde erstellt")
                    // An dieser Stelle die Funktion AddData aufrufen,
                    // um Name und Vorname zu übertragen:
                    AddData();
                })
                .catch((error) => {
// usw.
wobei ich mir nicht sicher bin, ob Du in AddData in dieser Zeile:
Code:
                set(ref(db, 'user/' + name), {
die Variable user, die Du von Firebase bekommst, oder name, die der Benutzer eingegeben hat, verwenden musst.
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
Zitieren
#5
Danke dir und sorry für die verspätete Antwort.
Lider habe ich es auf diesem Weg nicht hingekriegt.

Ich werde weiterhin mal probieren und mich melden sobald ich ein Stückchen näher gekommen bin ^^
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
3 Gast/Gäste