我正在遵循安装了最新版本AngularFire(0.8.0)的Thinkster Ang-News教程。我已成功进入教程的第7部分,但我被困在需要将用户对象插入Firebase Forge的部分。代码工作原理如下:
当一个新用户通过我的HTML表单注册时,将调用“register”函数和“user.create(authUser,$scope.user.username);”在“寄存器”功能内执行。
// 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中。我将非常感谢任何帮助。
乔恩
David已经像老板一样回答了这个问题,但为了清楚起见,这里是要在 /services/user.js.中替换的100%工作代码片段
'use strict';
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,
setPriority: authUser.uid
});
}
};
return User;
});
投票给大卫,而不是我:)。
在前面的回答之后,我使用$update语法设置优先级,这似乎有效:
users.$update(username, {
md5_hash : authUser.md5_hash,
username : username
}).then(function(ref) {
ref.setPriority(authUser.uid);
});
现在您正在修改绑定,然后调用$save。您必须使用$asObject或$asArray才能使用$save方法。
不过,在您的情况下,您不需要同步任何对象-只需保存一个。您可以为用户创建一个新对象并在绑定上使用$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
问题内容: 试图让我了解BS的html构建。 我正在尝试插入新标签: 当我检查结果时,我得到: 因此,我要插入一个针对Websafe html进行了清理的字符串。 我希望看到的是: 如何在带有ID的位置3中插入新标签? 问题答案: 使用工厂方法创建新元素: 并插入:
我试图在集合中插入一个对象,我重载了' 但我仍然得到以下错误: /home/joju/NetBeansProjects/cppu 1/main。cpp:51:对“domino::domino(int,int)”的未定义引用 build/Debug/GNU-Linux-x86/main。o:在函数`std::less::operator()(domino const)中 /usr/include/c
我有一个“优先级”为1-3的int的对象,递增意味着优先级更高。 我有一个链表,其中有一种队列中的对象。基本上,我要做的是循环遍历LinkedList,并将新对象与列表中已有的对象进行比较,如果对象到达的对象的int优先级高于下一个对象,我希望将其插入到优先级较低的对象之前。 如果对象与其他对象具有相同的优先级,我希望将其插入到具有相同优先级的对象后面。如果对象找不到另一个优先级比它低的对象,我只
我正在努力将JSON对象插入我的postgres v9.4 DB。我已经将名为“evtjson”的列定义为类型json(而不是jsonb)。 我试图在Java(jdk1.8)中使用准备好的语句将Json对象(使用JEEjavax.json库构建)插入到列中,但我一直遇到SQLException错误。 我使用以下方法创建JSON对象: 然后,我将这个对象作为参数传递给另一个方法,以使用准备好的语句将
问题内容: 我是Elasticsearch的新手,正在寻找使用Java API的帮助。我有一些领域对象,例如 我已经创建了连接到节点的传输客户端 有没有简单的方法将我的对象直接插入elasticsearch? 我看到了 但是要做到这一点,我必须将每个对象都转换成json,这虽然不是我理想的情况。 如果我对它的工作方式(架构上)有误解,请告诉我,我在这里学习! 欢呼声,罗布 问题答案: 我认为您在正
问题内容: 我想在我的SQL Server 2016表中插入一些JSON对象。 我的表结构如下: 我正在使用以下查询来插入我的数据: 但是,表中仅填充和的值。这两个和值是NULL。 我的查询出了什么问题?如何将JSON对象作为nvarchar插入? 问题答案: 我承认我对SQL Server 2016中的JSON内容没有任何经验,但是请看一下本教程: https://docs.microsoft.