3

Ich möchte Benutzer manuell in Firebase registrieren. Wie kann ich überprüfen, ob der Benutzer bereits registriert ist oder ob er (USERID) existiert? Wenn es existiert, sollte es sich nicht anders registrieren lassen, wenn seine Benutzer-ID noch nicht in der Datenbank ist, dann sollten seine Informationen gespeichert werden. Hier ist mein aktueller Code, in dem nur das Speichern von Userinfo noch möglich ist.Wie überprüft man, ob Daten in Firebase mit angularfire vorhanden sind?

$scope.details={}; 

$scope.registerme= function() { 
var someDate = new Date(); 
var ref = firebase.database().ref('/Users/'); 
$scope.submitme = $firebaseArray(ref); 


      $scope.submitme.$add({ 
      facebookid: $scope.details.userid, 
      firstname: $scope.details.firstname, 
      lastname: $scope.details.lastname, 
      timestamp: someDate.toString(), 
      }).then(function(ref) { 
      alert('Registration success.'); 
      }).catch(function(error) { 
      alert('Registration Failed.'); 
      }); 

}; 

Antwort

3

In AngularFire ist nichts eingebaut, um festzustellen, ob ein Knoten existiert. Aber da AngularFire auf dem Firebase JavaScript SDK basiert, können Sie dies mit dem JavaScript-API:

ref.child(uid).once('value', function(snapshot) { 
    console.log(snapshot.exists()); 
}); 

Die wichtige Sache zu erkennen sind, dass dieser Ausschnitt verwendet ein value Ereignis, das null ausgelöst wird, wenn es keine Daten am aktuellen Standort

Ein $firebaseArray() von AngularFire andererseits verwendet Firebase child_* Ereignisse, die nicht verwendet werden können, um das Vorhandensein eines bestimmten untergeordneten Elements in der Auflistung zu erkennen.

+0

Dank hatte ich hinzugefügt 'if (snapshot.exists()) {alert ("Dieser Benutzer existiert bereits");} else {alert ("Benutzer existiert nicht");} 'zu Ihrem Hinweis. – frank2k16

0

Wenn Sie eine Verknüpfung zu Ihrer Datenbank-Entität als FirebaseObjectObservable einrichten, können Sie exists() verwenden, um zu überprüfen, ob Ihre Entität existiert. , dass, wie ich überprüfen, ob meine Tabelle vorhanden ist und wenn nicht, werde ich es mit ersten Daten füllen:

vehicle.service.ts:

... 
public vehicles$$: FirebaseObjectObservable<any>; // link to '/vehicles' as object 
public vehicles$ FirebaseListObservable<Vehicle[]>; // link to '/vehicles' as list 
... 
constructor(
    private _http: Http, 
    private _db: AngularFireDatabase, 

) { 
    this.vehicles$$ = _db.object('/vehicles'); 
    this.vehicles$ = _db.list('/vehicles'); 
} 


public getVehicles(){ 
    this.vehicles$$.subscribe(table => { 
    if(!table.$exists()){   
     this.getVehiclesFromFile().subscribe(vehicles(vehicles: Vehicle[]) => 
     this.vehicles$$.set(vehicles).catch(err=>console.error(err)) 
    ) 
    } 
    }) 
    return this.vehicles$; 
} 
Verwandte Themen