如何通过以下结构更新用户

时间:2018-11-15 11:01:00

标签: android firebase firebase-realtime-database

假设我的用户正在访问世界各地,并且数据库如下所示,最好的做法是将用户从旧地方删除,然后将其转移到新地方(这样,该唯一用户只能一次在一个地方)?

第一个用户位于location A

database
    |
   places
      |___location A
      |        |___user1: "exact coordinates"
      |
      |___location B
               |___user2: "exact coordinates"

这就是我希望将user1移到location B之后的样子:

   database
        |
       places
          |___location B
                   |___user1: "exact coordinates"
                   |___user2: "exact coordinates"

如何将user1location B移到location A? 我很难找到正确的语法来简单地将(唯一标识的)user1从他的旧地方删除到他的新地方。

1 个答案:

答案 0 :(得分:2)

使用当前数据库结构时,要更改用户的位置,请执行3个操作:

  1. 读取用户的当前位置:

    undefined
  2. 将当前位置复制到新位置:

    database -> places -> location A -> user1
    
  3. 删除旧位置:

    database -> places -> location B -> user1
    

这可以通过使用单个更新操作来解决。在这种情况下,您应该考虑如下更改数据库结构:

database -> places -> location A

为了更新用户的位置,您只应像下面的代码行那样更新这两个属性:

Firebase-root
   |
   --- users
        |
        --- uid
             |
             --- lat: 48.856151
             |
             --- long: 2.298115