【问题标题】:How to know which user has generated a Firebase event?如何知道哪个用户生成了 Firebase 事件?
【发布时间】:2017-09-17 12:26:40
【问题描述】:

我在我的项目中使用 Firebase 实时数据库,目前,我使用任何身份验证方法,这意味着 Firebase 上的所有登录方法都被禁用,并且没有定义任何规则Firebase 数据库:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

我正在尝试实现一个协作文本编辑应用程序,以便多个用户同时更新相同的文本。因此,在我的应用程序中,我正在观察 Firebase 发送的相应文本编辑事件,因此可以为处理相同内容的所有用户保持文本同步。

我的问题是,当应用程序收到文本编辑事件时,我怎么知道是谁(哪个用户)在 Firebase 上进行了更改(我刚刚收到的事件是否是文本更改的结果由 User1 或 User2 等)。因为目前,我知道有人对文本进行了更改(因为我收到了一个事件),但我不知道是谁做的。有什么帮助吗?谢谢

任何一般性指导都会有所帮助。

【问题讨论】:

    标签: ios objective-c firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    如果您想在不要求用户登录的情况下识别用户,您正在寻找Firebase's anonymous authentication。在 Objective-C 中,这很简单:

    [[FIRAuth auth]
     signInAnonymouslyWithCompletion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
       // ...
     }];
    

    然后您可以通过以下方式识别用户:

    [[[FIRAuth auth].currentUser].uid];
    

    【讨论】:

    • 嘿弗兰克...这就是 OP 的要求吗?我认为他们正在寻找更多的方法来了解当每个人都是匿名的时候哪个用户向 Firebase 写入了某个数据。换句话说 - 也许他们正在寻找一种方法来(自动)绑定写入特定用户(例如名称)的数据。在这种情况下,当数据被写入时,它需要用可以识别用户的东西来“标记”。因此,子节点将包含 /updatedText: "new text" 以及 /userName: "Frank" 例如。或者......我可能只是不理解这个问题。 ;-)
    • 你可能是对的。我不清楚。如果你为这种方法写一个答案肯定会很好。
    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多