instalar auth firebase angularfire

firebase - auth - Cómo eludir identificaciones únicas y nodos secundarios de referencia



firebase angular 5 (1)

Mi base de datos de firbase es así:

app users -gn4t9u4ut304u9g4 email uid

¿Cómo hago referencia al correo electrónico y al uid? Cuando intento esto:

$rootScope.dashtype.child(''users'').orderByChild(''uid'').equalTo($rootScope.auth.uid).on(''value'', function(snapshot){ $rootScope.user = snapshot.val(); console.log($rootScope.user); })

Obtengo el objeto correcto, pero con el ID único como raíz:

Object {-JvaZVrWGvJis0AYocBa: Object}

Y debido a que esta es una propiedad dinámica, no sé cómo hacer referencia a los objetos secundarios. Solo quiero poder acceder a los campos de usuario como este: $ rootScope.user.email, etc.


Como solicita un valor, obtiene una lista de usuarios como resultado. Puede ser solo un usuario, pero sigue siendo una lista de uno.

Deberá pasar por encima de la instantánea para llegar al nodo secundario:

$rootScope.dashtype.child(''users'').orderByChild(''uid'').equalTo($rootScope.auth.uid).on(''value'', function(snapshot){ snapshot.forEach(function(userSnapshot) { $rootScope.user = userSnapshot.val(); console.log($rootScope.user); }); });

Como solo hay un usuario en la lista, el ciclo se ejecuta solo una vez.

Estás mezclando JavaScript de Firebase con AngularFire aquí. Esto significa que tendrá que informarle a AngularJS que actualizó el alcance, de modo que regrese la vista:

$rootScope.dashtype.child(''users'').orderByChild(''uid'').equalTo($rootScope.auth.uid).on(''value'', function(snapshot){ snapshot.forEach(function(userSnapshot) { $timeout(function() { $rootScope.user = userSnapshot.val(); console.log($rootScope.user); }); }); });