gpt4 book ai didi

javascript - Firebase 简单登录 + Angular - 每个用户自己的数据

转载 作者:行者123 更新时间:2023-11-28 01:20:30 25 4
gpt4 key购买 nike

这是我的 Controller 。注册功能正常。登录不了,但我的问题是,如何为每个用户制作数据?例如,我有用户 john@doe.cz,UID 是 simplelogin:29,ID 29。每个用户都有自己的帐户、类别等。那么最佳实践是什么或如何实现呢?我考虑制作 own-firebase.firebaseio.com/users/(id、uid 或某种哈希)/类别或帐户。

app.controller('AuthCtrl', function($scope, $ionicModal, $firebase, DataFactory){

var auth = new FirebaseSimpleLogin(usersAuth, function(error, user) {
if (error) {
// an error occurred while attempting login
console.log(error);
} else if (user) {
// user authenticated with Firebase
console.log('User ID: ' + user.uid + ', Provider: ' + user.provider);
} else {
// user is logged out
}
});

$ionicModal.fromTemplateUrl('views/auth/register.html', function(modal) {
$scope.registerModal = modal;
}, {
scope: $scope,
animation: 'slide-in-up'
});

$ionicModal.fromTemplateUrl('views/auth/login.html', function(modal) {
$scope.loginModal = modal;
}, {
scope: $scope,
animation: 'slide-in-up'
});

$scope.registerModalShow = function() {
$scope.registerModal.show();
};

$scope.registerModalHide = function() {
$scope.registerModal.hide();
};

$scope.loginModalShow = function() {
$scope.loginModal.show();
};

$scope.loginModalHide = function() {
$scope.loginModal.hide();
};

$scope.newUser = function(user){
$scope.userEmail = user.email;
$scope.userPassword = user.password;

auth.createUser($scope.userEmail, $scope.userPassword, function(error, user) {
if (!error) {
console.log('User UID: ' + user.uid + ', Email: ' + $scope.userEmail + ', User ID: ' + user.id + ', User Password: ' + $scope.userPassword);
}
});

$scope.userRef = new Firebase(url + '/users' + $scope.userPassword);
$scope.registerModalHide();
user.email = '';
user.password = '';
alert($scope.userId);
};

$scope.userLogin = function(user){
$scope.userLoginEmail = user.email;
$scope.userLoginPassword = user.password;

auth.login('password', {
email: user.email,
password: user.password
});
$scope.loginModalHide();
user.email = '';
user.password = '';
};
});

最佳答案

我使用以下方法来创建“每个用户自己的数据”:

当有人第一次登录我的应用程序时,我创建一个新的个人资料,其中可以包含我想要的任何详细信息:

$scope.login = function () { // This logic handle the addition of new users to my firebase.

$rootScope.auth.$login('twitter') // Because of I'm using Twitter for login.
.then(function (user) {
$scope.myFirebaseRef.$child(user.uid).$set({name: user.displayName}); // Create new profile.
console.log("Welcome " + user.displayName + "!" );
$state.go('home');
}, function (error) {
consolle.log(error);
}
);
}

然后,当我更改 View 时,我会执行此resolve:

resolve: { // Basically, It's asking for a logged user and waiting for a promise before load the controller. 
session: function($rootScope) {
return $rootScope.auth.$getCurrentUser().then(function(user) {
if (user) {
$rootScope.someCurrentUser = user.uid;
}
});
}
}

最后,我使用 $rootScope.someCurrentUser 创建个性化 session :

.controller('sessionController', ['$rootScope', '$firebase', function($rootScope, $firebase) {
var someUserRef = new Firebase('https://myfirebase.firebaseio.com/' + $rootScope.someCurrentUser);
$scope.sessionRef = $firebase(someUserRef);

// Do something with/in your personalized session.

}]);

我希望这种方法能为您提供一些为每个用户创建 session /自己的数据的想法。

关于javascript - Firebase 简单登录 + Angular - 每个用户自己的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23321608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com