当前位置: 首页 > 知识库问答 >
问题:

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

曾珂
2023-03-14

我正在遵循安装了最新版本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中。我将非常感谢任何帮助。

乔恩

共有3个答案

刘令
2023-03-14

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

投票给大卫,而不是我:)。

花稳
2023-03-14

在前面的回答之后,我使用$update语法设置优先级,这似乎有效:

users.$update(username, {
    md5_hash : authUser.md5_hash,
    username : username
}).then(function(ref) {
    ref.setPriority(authUser.uid);
});
闾丘博
2023-03-14

现在您正在修改绑定,然后调用$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.