2016-10-17 4 views
1

ich folgende Login-Methode verwendet:Angularfire2 einen neuen Benutzer zur Datenbank hinzufügen

login() { 
    this.auth.login(); 
this.authService.login().subscribe(() => { 
    if (this.authService.isLoggedIn) { 
     console.log("ADDING THE USER.."); 
     // Add a new user to the users table 
     this.af.child("users").child(this.authService.userData.uid).set({ 
      provider: this.authService.userData.provider, 
      name: this.getName(this.authService.userData) 
     }); 
    // Redirect the user 
    this.router.navigate(['/panel']); 
    } 
}); 

}

der fast gleichen wie das Verfahren in der Dokumentation: https://www.firebase.com/docs/web/guide/user-auth.html#section-storing

Wenn ich meine Anwendung ausführen , Erhalte ich die folgende Fehlermeldung:

Property 'child' does not exist on type 'AngularFire'. 

und der Benutzer wird nicht hinzugefügt. Was ist los mit dir?

Alles, was ich brauche, ist ein neues Objekt zu meiner Firebase-Datenbank hinzufügen. Die folgenden Arbeiten, aber ich brauche die Struktur, wie oben gezeigt:

this.users = this.af.database.list('/users'); 
this.users.push("TEST"); 

So, wie ich ein neues Benutzerobjekt in der Datenbank hinzufügen kann in https://www.firebase.com/docs/web/guide/user-auth.html#section-storing die gleiche Struktur verwenden? und warum kann ich meinen Code nicht ausführen, wenn er genauso ist wie dokumentiert?

aktualisieren

Mein neuer Code:

this.af.database.object('/users/${this.authService.userData.uid}').set({ 
       provider: this.authService.userData.provider, 
       name: this.getName(this.authService.userData) 
      }); 
  • Kein Benutzer eingefügt (meine Feuerbasis Datenbank ist leer)
+0

https://github.com/angular/angularfire2/blob/master/docs/2-retrieving-data-as-objects.md#api-summary – cartant

Antwort

4

Verwendung object(); child() existiert nicht:

this.af.database.object(`users/${this.authService.userData.uid}`).set({...}) 
+0

kühlen, danke. aber Sie haben vergessen, '.database' nach dem' .af' hinzuzufügen. Wie auch immer, ich habe keine Ahnung warum, aber meiner Datenbank wird nichts hinzugefügt. Mein Code aktualisiert – TheUnreal

+0

Erhalten Sie einen Fehler? Sind Ihre Sicherheitsregeln in Ordnung? – Sasxa

+0

Ich bekomme keinen Fehler. Meine rulese sind: '{ "Regeln": { ".mehr ": "true", " .WRITE": "true" } }' In meiner Datenbank Feuerbasis Konsole Ich sehe nur 'null' – TheUnreal

0

Dieser ist eine kürzere Version.

import { AngularFireDatabase } from "angularfire2"; 

... 

constructor(private afd: AngularFireDatabase) {} 

... 

this.afd.object(`users/${this.authService.userData.uid}`).set({...}); 
Verwandte Themen