【问题标题】:How to get Firebase User (fb auth) directly? (without realtime db ref) [duplicate]如何直接获取 Firebase 用户(fb auth)? (没有实时数据库参考)[重复]
【发布时间】:2017-03-12 21:01:12
【问题描述】:

我正在使用具有发送者和接收者属性的消息对象制作应用程序。

我想将这些属性分配给位于 Firebase 控制台 (fb auth-ed) 的“身份验证”选项卡中的用户。

由于我的应用程序的功能只需要从用户那里读取数据,我认为我不需要将它们添加到实时数据库中,只需通过 FIRAuth 访问它们(我假设这是 Auth 的内部表示) Firebase 控制台上的选项卡)。

我可以像这样获取“当前用户”:

FIRAuth.auth()?.currentUser

这将是消息的“发件人”属性。

但对于“接收者”属性,我想从 Firebase 控制台的“身份验证”选项卡中列出的经过 fb 身份验证的用户(发件人将从 fb 联系人的下拉列表中选择)获取一个用户。对于收件人,我需要能够做这样的事情(伪代码):

users.find(where uid == current_user.uid)

是否可以在数据库中没有用户表的情况下直接执行此操作?我真的需要将条目从 Firebase Auth 复制到 Firebase 数据库吗?难道不应该有更好的方法从 Firebase 获取非当前用户吗?有没有其他人认为这是非常糟糕的设计(仅仅能够阅读条目)?那么我不负责维护这些条目吗?

也欣赏指向特定阅读的指针!

为了清楚起见,我并不想在 Firebase 控制台的实时数据库选项卡中查询条目。我正在尝试查询 Firebase 从 Facebook 保存的用户对象(在 Firebase 控制台的“身份验证”选项卡中可见)。

【问题讨论】:

  • 如果您尝试访问其他用户信息,则需要将这些值存储在数据库中,然后从那里访问它们。从当前的 auth 类中,您将只能访问当前用户的信息
  • 感谢@Dravidian,我相信您并乐于尝试,但如果您知道文档中的哪个位置指定它是必要的,我也会喜欢该链接。
  • 没有 API 可以从 Firebase 身份验证中获取用户列表。典型的方法是 Dravidian 回答的,许多问题已经涵盖了这个问题,包括这个original one、这个one from me 和这个recent one
  • 谢谢,这个问题确实回答了它,听起来这是设计使然,并且出于良好的安全相关原因。

标签: ios swift firebase firebase-authentication facebook-authentication


【解决方案1】:

要访问其他用户,请使您的 JSON 结构如下所示:-

Users:{
  userID1 : {...//PERSONAL DATA},
  userID2 : {...//PERSONAL DATA},
  userID3 : {...//PERSONAL DATA}
  },
users_Data:{
    userID1 : {...//data to be shared like userID, name..etc},
    userID2 : {...//data to be shared like userID, name..etc},
    userID3 : {...//data to be shared like userID, name..etc}
 } 

只需访问那些 users_Data 以存储在您的数据源中,您将在其中访问您的用户 ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2019-01-06
    • 2020-12-22
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多