【问题标题】:Inserting The UID into Firebase Database Only once仅将 UID 插入 Firebase 数据库一次
【发布时间】:2017-12-11 15:42:35
【问题描述】:

在Android Studio的主要活动中,匿名登录firebase后,我有这行代码:

        FirebaseDatabase.getInstance().getReference().child("Online Users").push().setValue(currentUser.getUid().toString());

因此,当前用户的 UID 将保存到子“在线用户”下的 firebase 中。好的。问题是,当我第二次或第三次打开应用程序时,或者如果我从另一个活动导航到主活动,这行代码会再次执行,现在我在 firebase 中有几个相同的条目。我的意思是,一个 UID 已被多次推送到 firebase 中。但我不想那样。我只想要每个 UID 的一份副本。我怎样才能做到这一点?

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    当您希望特定值在 Firebase 数据库中唯一时,将其建模为列表的键。

    在您的情况下,这意味着您实际上使用 UID 作为键,而不是调用 push()

    FirebaseDatabase.getInstance().getReference().child("Online Users").child(currentUser.getUid().toString()).setValue(true);
    

    现在,每当用户再次上线时,他们只是将true 再次写入同一位置。


    请注意,同一用户可以从多个设备上网。如果您正在尝试构建一个在线状态系统,跟踪哪些用户在线,我建议您研究正确处理边缘情况的sample presence system in the Firebase documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      相关资源
      最近更新 更多