¿Cómo enlazo a cada usuario a sus datos en Firebase?


Planeo crear un árbol principal llamado usuarios que incluirá el nombre de los diferentes usuarios utilizados como nombre de usuario. Por lo tanto, de cada nombre de usuario se incluirán sus datos, por ejemplo, Nombre completo, Dirección, Número de teléfono.

Quiero saber cómo obtener los datos de cada usuario cuando inicia sesión en su perfil.

Author: dipoisola, 2015-06-18

1 answers

En primer lugar, le sugiero que pase algún tiempo familiarizándose con firebase leyendo la Guía Firebase (Enlace a la antigua Guía de Firebase). Todo lo que necesita saber para responder a su propia pregunta está disponible allí. Pero para simplificar voy a poner un ejemplo aquí:

Comencemos con la seguridad, aquí están las reglas básicas de firebase que necesita para este ejemplo: (source: Understanding Security) (old source: Understanding Security)

{
  "rules": {
    "users": {
      "$user_id": {
        ".write": "$user_id === auth.uid"
      }
    }
  }
}

I omitirá la creación real del usuario y el inicio de sesión y se centrará en la pregunta sobre el almacenamiento y la recuperación de datos del usuario.

Almacenamiento de datos: (fuente: Autenticación Firebase ) (fuente antigua: Autenticación de usuario)

// Get a reference to the database service
var database = firebase.database();
// save the user's profile into Firebase so we can list users,
// use them in Security and Firebase Rules, and show profiles
function writeUserData(userId, name, email, imageUrl) {
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email
    //some more user data
  });
}

Los datos de firebase resultantes se verán así:

{
  "users": {
    "simplelogin:213": {
      "username": "password",
      "email": "bobtony"
    },
    "twitter:123": {
      "username": "twitter",
      "email": "Andrew Lee"
    },
    "facebook:456": {
      "username": "facebook",
      "email": "James Tamplin"
    }
  }
}

Y por último, pero no menos importante, el retiro de los datos, esto se puede hacer de varias maneras, pero para este ejemplo voy a usar un ejemplo simple de la guía de firebase: (fuente: Leer y escribir datos ) (fuente antigua: Recuperar datos)

//Get the current userID
var userId = firebase.auth().currentUser.uid;
//Get the user data
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
    //Do something with your user data located in snapshot
});

EDITAR: Se agregó un ejemplo de datos de retorno

Así que cuando usted está conectado como usuario twitter: 123 obtendrá una referencia a la ubicación basada en su id de usuario y obtendrá estos datos:

"twitter:123": {
          "username": "twitter",
          "email": "Andrew Lee"
        }
 57
Author: André Kool,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-05 09:20:41