【问题标题】:How to access user database with VueJs and Firebase如何使用 VueJs 和 Firebase 访问用户数据库
【发布时间】:2017-12-26 09:53:16
【问题描述】:

我正在尝试在用户使用 Firebase 登录后输出当前经过身份验证的用户名。

目前在 VueJs 中,我正在获取 .currentUser,然后访问 users 数据库。如屏幕截图所示,我试图在/users/ 数据库中输出与当前用户 UID 匹配的用户名。问题是日志为username输出null

getName: function () {
  var userId = firebase.auth().currentUser.uid;
    return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
  var username = (snapshot.val() && snapshot.val().username);
     console.log(username)
    })
},

【问题讨论】:

  • 你得到正确的userId了吗?
  • @Hareesh 是的,当记录 userId 时,我得到了正确的 ID。这是不正确的下一步。
  • 试试var username = snapshot.val().username
  • 尝试删除多余的 / 。像这样:ref('users/' + userId)

标签: javascript firebase web-applications firebase-realtime-database vuejs2


【解决方案1】:
getName: function () {
   var userId = firebase.auth().currentUser.uid;
   return firebase.database().ref('/users/' + 
      userId).on('value', function(snapshot) {
         if (snapshot.val()) {
            var obj = snapshot.val();
            var userName = snapshot.val().username;
            console.log('username:', userName)
         }
   });
}

once 方法只会调用 node 一次,但 on 每次都会调用。

【讨论】:

  • 我收到以下错误:Error: Query.on failed: Was called with 1 argument. Expects at least 2.
  • 我更改了我的代码,检查一次,如果您遇到任何问题,请告诉我@scopeak
  • 成功了,谢谢!关于使用.on 而不是.once 如果只是为了显示不会真正改变的用户名之类的事情,我是否应该使用once
  • 据我所知,只要我们想获取数据,就会用到。并且每当节点更新时一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 2023-03-04
  • 2020-10-10
  • 2018-12-07
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
相关资源
最近更新 更多