我正在使用AngularFire,如何检索这个“电子邮件”,“uid”数据?

时间:2015-06-17 17:03:06

标签: angularjs object firebase angularfire

JS CODE

 var myFirebaseRef = new Firebase('https://blinding-inferno-7068.firebaseio.com/');
     var createdUserRef = myFirebaseRef.child('users').child('createdUser');
     $scope.users = $firebaseArray(createdUserRef);

HTML CODE

        <ul ng-repeat="user in users">
            <li>{{user.uid}}</li>
            <li>{{user.email}}</li>
            <li>{{user}}</li>
        </ul>

我想要的是user.uid和user.email,但那些东西没有出来。 所以我检查了用户对象,这些东西出来了。

{"-Js0q1mWTwK-AZDZyVdc":{"email":"roro7828@gmail.com","uid":"simplelogin:11"},"$id":"simplelogin:11","$priority":null}

如何检索密钥的值? (我的意思是电子邮件的价值和uid的价值)

我是否应该通过输入这样的代码来检索数据?

{{user.-Js0q1mWtwk-AZDZyVdc.email}}

像这样?可怕。

请帮帮我T_T ..

1 个答案:

答案 0 :(得分:4)

让我们来看看你的实际数据:

{
  "users": {
    "createdUser": {
      "simplelogin:11": {
        "-Js0q1mWTwK-AZDZyVdc": {
          "email": "roro7828@gmail.com",
          "uid": "simplelogin:11"
        }
      },
      "simplelogin:12": {
        "-Js0qpcW6jI9Yf3kplCs": {
          "email": "ao7828@gmail.com",
          "uid": "simplelogin:12"
        }
      },
      "simplelogin:13": {
        "-Js0qrEbzYnFOOWtnCbg": {
          "email": "do7828@gmail.com",
          "uid": "simplelogin:13"
        }
      }
    },
    ...
  }
}
  • 您可以通过new Firebase('https://blinding-inferno-7068.firebaseio.com/').once('value', function(s) { console.log(JSON.stringify(s.val())); }, function(e) { console.error(e); })或查看应用程序信息中心的“数据”标签来获取数据转储。*

您的$firebaseArray包含以下对象:

      "simplelogin:11": {
        "-Js0q1mWTwK-AZDZyVdc": {
          "email": "roro7828@gmail.com",
          "uid": "simplelogin:11"
        }
      },

email下没有子simplelogin:11。所以这就是你没有看到输出的原因。

看起来您不小心为用户添加了$add操作,这会在上面的示例中创建"-Js0q1mWTwK-AZDZyVdc"。您应该使用$save或仅使用常规Firebase JavaScript SDK:

ref.child('users/createdUser').child(user.uid).set(user);

请注意,如果没有看到用于创建这些用户的代码,那么解释起来有点棘手。因此,如果您编辑您的问题以包含该代码,我会更新我的答案。