在FireBase中初始化新用户的数据

时间:2017-11-22 09:14:47

标签: java android firebase firebase-realtime-database

我有一个firebase数据库,如下所示: enter image description here
您可以认为1级对象是列表项。级别2对象是级别1对象的对应列表项。 1级有大约100个对象。 2级有大约1000个对象。

当新用户注册时,我必须初始化此结构(对所有用户都相同)。循环遍历所有对象并保存在firebase中非常慢,效率低下。有一个更好的方法吗?

示例代码:

for (int i = lvl1ObjCount; i >= 1; i--) {

    String lvl1ObjKey = getLvl1KeyFromFirebase();
    setLvl1ObjInFireBase(new Level1Object(lvl1ObjKey)); 

    for (int j = lvl2ObjCount; j >= 1; j--) {
        String lvl2ObjKey = getLvl2KeyFromFirebase(lvl1ObjKey);
        setLvl2ObjInFireBase(new Level2Object(lvl1ObjKey, lvl2ObjKey));
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您应该按照以下方式展平数据表

{
  "users": {
       "asdfas12321": {
              "lvl1": "lvl1Key#2",
              "lvl1": "lvl1Key#2",
              },
       "asdfa112312": { ... },
       "1241dwqreq": { ... }
     }
}

{
  "lvl1": {
       "asdfas12321": {
              "lvl2": "lvl2Key#1",
              "lvl2": "lvl2Key#2",
              },
       "asdfa112312": { ... },
       "1241dwqreq": { ... }
     }
}