【问题标题】:(Flutter) How to get other users' info from Firebase(Flutter) 如何从 Firebase 获取其他用户的信息
【发布时间】:2019-11-23 01:45:22
【问题描述】:

1。问题的背景

在我的应用程序中,我正在创建一个屏幕,用户可以在其中看到其他人的排名。为此,不可避免地,我需要其他用户的姓名、头像等。那么,有没有办法通过Firebase 的身份验证API 查询这些信息?或者,例如,当用户第一次登录时,我是否必须将这类数据保存在单独的集合中——这对我来说听起来不是一个好的安全做法。

2。我认为它会是什么样子

我想工作流程看起来有点像这样:

// ...
for (String userEmail in listOfUserEmailsInRanking){
  UserInfo userData = FirebaseAuth.instance.getUserData(
    email: userEmail
  );
  userDisplayName = userData.displayName;
  userPhoto = userData.photoUrl;
  // ...
}

我的想法是在displayNamephotoUrl 的示例之后应该有一些API,这两个属性都可以从FirebaseAuth.instance.currentUser() 方法中获得。

【问题讨论】:

  • 我建议观看此播放列表以了解 Firebase 的身份验证和 Cloud Firestore 的工作原理youtube.com/…

标签: firebase flutter firebase-authentication


【解决方案1】:

无法使用 Firebase 身份验证客户端 API 来允许用户查询其他用户。如果您想将用户帐户数据暴露给其他用户,您应该编写一些代码将所需的用户数据写入数据库,然后查询数据库。

如果您担心安全性,并且您正在使用 Firebase 数据(实时数据库或 Firestore),那么请考虑使用安全规则来确定谁可以读取和写入其数据。

【讨论】:

【解决方案2】:

您的第二个选项可以在不影响安全性的情况下实施。如果您真的打算共享一些用户数据(我认为这些数据不敏感),您可以创建一个仅包含该数据的共享单独集合,并通过某个 ID 将其链接到所有者,该 ID 您也保存在该所有者属性的私有集合中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 2021-03-28
    • 1970-01-01
    • 2019-03-08
    • 2017-04-07
    • 2019-09-18
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多