【问题标题】:Firebase store user variables?Firebase 存储用户变量?
【发布时间】:2017-08-01 19:20:13
【问题描述】:

我将 Firebase 用于我的一个初学者项目,但我对所提供的文档感到困惑。我已经初始化了一个身份验证表单,它正在工作。但是我不明白如何将它链接到实时数据库?

我知道 (user) 是当前登录的 it 用户,但是如何存储当前用户的信息?

在我的应用中,每个用户都有一个余额(例如 100 美元)。如何将用户的余额存储在用户名中,是否需要使用实时数据库?

【问题讨论】:

  • 是的,您需要使用实时数据库。以下是您读取和写入数据的方式。 firebase.google.com/docs/database/web/read-and-write
  • 好的,谢谢。但是文档没有告诉我应该如何布局数据库以使其与身份验证一起使用,我觉得那里缺少一大块。

标签: javascript firebase firebase-realtime-database firebase-authentication


【解决方案1】:

基本上, 当新用户注册时,您可以通过user.uid 访问他的 UID,您可以使用该 UID 将信息存储在实时数据库中。

您可以创建这样的结构。

root: {
  users: {
    $uid: {
      // Store all your custom info here.
      balance: 100
    }
  }
}

对于每个用户,您都可以将他们的信息写入"users/uid"。这应该使保存和获取信息变得相当简单。

要获得当前用户的余额,您只需观察"users/uid/balance"

创建一个用户。

firebase.auth().createUserWithEmailAndPassword(email, password)
.then(function(user){
  alert(user.uid)
}).catch(function(error) {
    console.log(error.message)
});

Reading and writing data

【讨论】:

  • 谢谢,有道理!但我不明白为什么我的数据库没有更新...gyazo.com/22556e96d9e8e405f9c2c050426d9d60gyazo.com/3f323b7beaa6a3f441835f111bcb9d16
  • 试试firebase.database().ref('users/'+uid+'/balance').set(100)
  • 另外,我认为你不能用与createUserWithEmailAndPassword相同的方法调用firebase.auth().currentUser()
  • 所以你认为我需要先登录用户才能获得 UID?而“+uid+”又是什么意思?
  • 是的,除非用户登录,否则您无法访问 auth().currentUser()。+uid+ 是一种将变量插入字符串的方法。目前您正在写信给users/uid,它是静态的,但您需要写给该特定用户的ID,它通常看起来像这样wHnubnbDKsOsWgrLO0pMdLFW18g1。基本上 + 将字符串粘贴在一起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 2021-06-26
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多