在Firebase Web应用程序中将创建的用户链接到数据库 [英] linking created users to database in firebase web app

本文介绍了在Firebase Web应用程序中将创建的用户链接到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Angular JS网络应用程序中将经过身份验证的用户链接到我的Firebase数据库?

How do I link the authenticated users to my firebase database in my Angular JS web app?

我知道我必须在数据库树中为每个用户创建一个节点.为此,我在数据库树中创建了一个名为用户"的节点.我不了解的是如何让每个用户占据数据库的用户"节点中的一个子节点,这样一来,一旦登录,每个用户保存的所有数据都将保存在其各自的子节点下.

I understand that I would have to create a node in my database tree for each user. I have created a node in my database tree called "users" for this. What I do not understand is how to get each user to occupy a sub-node in my "users" node in my database such that once logged in, all the data each user saves is saved under their respective sub-nodes.

这是我目前的代码:

         $scope.saveTeam = function(user){
$scope.history = [];

 var uid = user.uid;

var ref2 = firebase.database().ref("users/" + uid + "/week"); 


 ref2.set($scope.history);

  };

推荐答案

您用来注册用户的任何方法都会返回Promise.

Which ever method you are using to signup users has a promise returned .

例如,考虑使用电子邮件和密码注册用户:

For example consider signing up users with email and password:

firebase.auth().createUserWithEmailAndPassword(username, password).then(
    (user) =>{
        let usersRef = firebase.database().ref("users");
         //child is created under users node with a user's user id as child name
        usersRef.child(user.uid).set({
            email: user.email,
            userName: username,
            displayPicUrl: 'any url.'
          });
    }, error => {
        //handle errors here
    }
); 

因此,您可以按照上述承诺的完整部分执行将新用户写入数据库的过程. 这样可以确保仅在用户注册成功后才创建用户节点

So you can do the process of writing a new user to database in ths promise's fullfilled part as shown above. This ensures that a user node is created only if user sign up was successful

因此请在代码中添加这样的

$scope.signUp = function (){
   var username = $scope.user.email;
   var password = $scope.user.password;
   if(username && password){
         var auth = $firebaseAuth();
             auth.$createUserWithEmailAndPassword(username, password).then(function(user){
                 console.log("User Successfully Created");
                let usersRef = firebase.database().ref("users");
                 //child is created under users node with a user's user id as child name
                usersRef.child(user.uid).set({
                    email: user.email,
                    userName: username,
                    displayPicUrl: 'any url.'
                  });

                 $location.path('/home');
             }).catch(function(error){
                $scope.errMsg = true;
                $scope.errorMessage = error.message;
             });
 }
 }; 

您没有在then()

这篇关于在Firebase Web应用程序中将创建的用户链接到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆