Firebase Unity SDK:如何获取所有注册用户

时间:2019-05-20 16:55:56

标签: c# firebase unity3d firebase-authentication

我想获取我的Firebase项目中所有注册用户的用户名。我已经安装了FirebaseAuth.unitypackage

我在Firebase中查看了Unity Docs,但对此一无所获。我想要的是here。但是有一些问题;

  1. 它是用Admin SDK制作的,我不确定是否可以为Unity安装此SDK。 SDK中没有名为Admin的软件包。
  2. 未提供C#代码。
  3. 已将注释留为”“注意:此API当前仅可用于Admin Node.js SDK”

1 个答案:

答案 0 :(得分:0)

我将在将所有内容保留在Firebase中并愿意引入其他Firebase产品的情况下回答此问题。如果要总体上使用Auth Admin SDK,只需确保从您控制的服务器(而不是用户的计算机)上进行操作即可。

通常,您通常需要另外一种Firebase服务才能以所需的方式与Firebase Auth进行交互。可以将Cloud Functions与Node.js admin SDK结合使用(出于谨慎考虑,我不喜欢在关键用户路径中使用admin SDK),或者使用Realtime Database之类的东西来单独列出所有用户和其他用户您可能会与他们关联的其他信息。

通常,我将在Realtime Database中存储我的注册用户,并使用一个名为users的节点,然后每个用户都有一个仅命名其用户ID的节点。因此,具有两个ID为uid_0和uid_1的用户的用户列表,我将具有以下结构:

  • 用户:
    • uid_0:{姓名,头像和&c}
    • uid_1:{姓名,头像和&c}

您的rules.json可能看起来像这样,仅允许用户写入自己的userid数据,但允许所有人读取(以便您可以为用户提供用户列表):

{
  "rules": {
    // Bonus maps cannot be written to under normal circumstances.
    "users": {
      ".write": "!data.exists()",
      "$uid" {
        ".write": "auth != null && auth.uid == $uid",
        ".read": true // or more granular, like ensure your uid is in the target's friends list
      }
    }
  }
}

就维护此列表而言。您可以使用rules language来确保用户只能创建/删除自己的$ uid,也可以将FunctionsFirebase Authentication triggers一起使用(并且Realtime Database Admin SDK我试图尽量减少使用)将条目添加/删除到用户列表中。

我希望这会有所帮助!