gpt4 book ai didi

javascript - 如何将对象插入 Firebase Forge? - AngularFire 0.8.0 - Thinkster - 第 7 章

转载 作者:搜寻专家 更新时间:2023-11-01 04:54:15 25 4
gpt4 key购买 nike

我正在按照 Thinkster Ang-News 教程安装最新版本的 AngularFire (0.8.0)。我设法到达了 part 7教程成功,但我卡在需要将用户对象插入 Firebase Forge 的部分。代码工作如下:

当新用户通过我的 HTML 表单注册时,“注册”函数被调用,“User.create(authUser, $scope.user.username);”在“register”函数中执行。

// login and registration page
app.controller('AuthCtrl',
function ($scope, $location, Auth, User) {

if (Auth.signedIn()) {
$location.path('/');
}

$scope.$on('firebaseSimpleLogin:login', function(){
$location.path('/');
});

$scope.login = function(){
Auth.login($scope.user).then(function(){
$location.path('/');
}, function (error){
$scope.error = error.toString();
});
};

$scope.register = function () {
Auth.register($scope.user).then(function (authUser) {
Auth.login($scope.user);//cause creating user auto login
User.create(authUser, $scope.user.username);
console.log(authUser);
$location.path('/');
}, function (error){
$scope.error = error.toString();
});
};
});

“用户”服务有一个“创建”功能,它创建用户对象并将对象信息存储在 Firebase Forge 中。如下所示,调用“users.$save(username)”将用户“$save”到 Firebase Forge 中。但是,当调用 $save 方法时,我的 Firebase Forge 中没有任何反应。我查看了最新的 AngularFire 规范,正如您在我的代码注释 (//) 中看到的那样,我尝试将 $asArray()、$asObject() 与我的“users”变量结合使用,但这没有用。当我使用“users.$add(username);”时我的 Firebase Forge 没有调用 $save 方法,而是添加了没有对象属性的用户名。

app.factory('User', function ($firebase, FIREBASE_URL, Auth, $rootScope) {
var ref = new Firebase(FIREBASE_URL + 'users');

var users = $firebase(ref);
//var users = $firebase(ref).$asObject();
//var users = $firebase(ref).$asArray();

var User = {
create: function (authUser, username) {
users[username] = {
md5_hash: authUser.md5_hash,
username: username,
$priority: authUser.uid
};


//users.$add(username);

users.$save(username).then(function () {
setCurrentUser(username);
});

}, // end of create fxn

同样,我无法使用 $save 或 $add AngularFire 方法将“users[username]”对象插入到我的 Firebase Forge 中。如果有任何帮助,我将不胜感激。

乔恩

最佳答案

现在您正在修改绑定(bind),然后调用 $save。您必须使用 $asObject$asArray 才能进入 $save 方法。

但在您的情况下,您不需要同步任何对象——只需保存一个。您可以为用户创建一个新对象并在绑定(bind)上使用 $update

app.factory('User', function ($firebase, FIREBASE_URL, Auth, $rootScope) {
var ref = new Firebase(FIREBASE_URL + 'users');
var users = $firebase(ref);

var User = {
create: function (authUser, username) {

users.$update(username, {
md5_hash: authUser.md5_hash,
username: username,
priority: authUser.uid
});

}, // end of create fxn

关于javascript - 如何将对象插入 Firebase Forge? - AngularFire 0.8.0 - Thinkster - 第 7 章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319523/

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