注册帐户后,如何将用户uid存储到firebase数据库?

问题描述 投票:-1回答:1

这是我在.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"
       }
      }
    }
   }

真诚的道歉,但我是新来的;(

javascript firebase web firebase-realtime-database firebase-authentication
1个回答
4
投票

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.
  });

关于老师/学生的另一个问题是非常广泛的 - 尝试将其缩小到一个解决方案,如果你遇到一些具体的问题就会创建一个新问题。

© www.soinside.com 2019 - 2024. All rights reserved.