Как сохранить пользовательский uid в базе данных firebase после регистрации учетной записи? - PullRequest
0 голосов
/ 04 сентября 2018

Вот мой код в формате .js

$("#loginBtn").click(
function(){


var email = $("#loginEmail").val();
var password = $("#loginPassword").val();

if(email != "" && password != ""){
  $("#loginProgress").show();
  $("#loginBtn").hide();
  $("#registerBtn").hide();

  firebase.auth().signInWithEmailAndPassword(email, 
password).catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;

    $("#loginError").show().text(errorMessage);
    $("#loginProgress").hide();
    $("#loginBtn").show();
    $("#register_account_Btn").hide();
    $("#back_btn").hide();

  });
 }
}
);

/* REGISTER PROCESS */

$("#register_account_Btn").click(
 function () {
var email = $("#regEmail").val();
var password = $("#regPassword").val();

if(email != "" && password != ""){
  $("#loginProgress").show();
  $("#loginBtn").hide();

  firebase.auth().createUserWithEmailAndPassword(email,
   password).catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;

    $("#loginError").show().text(errorMessage);
    $("#loginProgress").hide();
    $("#loginBtn").show();
    $("#register_account_Btn").hide();
    $("#back_btn").hide();

  });
}

Я нашел это в Интернете, но я не знаю, куда его вставить. Это правильно?

var uid = firebase.auth().currentUser.uid;
  firebase.database().ref().child('accounts').child(uid).set({
    email: user.email,
    userId: uid
  })

Должен ли я создать другую функцию?

и это правила в моей базе данных firebase. Желательно ли использовать это? Дополнительный вопрос: Я хочу создать пользовательские роли: учитель и ученик. Учитель может создавать классные комнаты, добавлять учеников, просматривать список учеников. Пока ученик может видеть своих одноклассников и учителя. Как мне это сделать?

    {
  "rules": {
    "users": {
      "$uid": {
        ".read": false,
        ".write": "$uid === auth.uid"
       }
      }
    }
   }

Искренние извинения, но я новичок в этом; (

1 Ответ

0 голосов
/ 04 сентября 2018

Функция firebase.auth().createUserWithEmailAndPassword возвращает Promise: firebase.User.

Вы ловите исключения только с помощью своего кода, если вы включите .then в функцию, вы сможете получить информацию о пользователе и сохранить этого пользователя в данных.

firebase.auth().createUserWithEmailAndPassword(email, password)
  .then(user => {
    // Save user here.
    return firebase.database().ref('/users/' + user.uid).set({
      email: user.email,
      uid: user.uid
    });
  })
  .catch(function(error) {
    // Handle Errors here.
  });

Ваш другой вопрос, касающийся учителя / ученика, очень широк - попробуйте сузить его до решения, и если вы застряли с каким-то конкретным вопросом, создайте новый вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...