Firebase设置根ID的密钥

时间:2016-05-20 10:02:02

标签: android firebase firebase-realtime-database

我只是想知道如何使用我自己的键设置root id,而不是在顶部的while循环内生成的Push()键。

  -Waypoint  
    -RootID <-- This key
      -Points

....................

 LinkedHashMap<String, Object> pointHolder = new LinkedHashMap<>();
 LinkedHashMap<String, Object> waypointHolder = new LinkedHashMap<>();

 waypointsUrl = Constants.FIREBASE_URL + "/users/" + mUserId + "/waypoints";
        mainRef = new Firebase(waypointsUrl);

.................

更新代码

            while (isFirstTime) {
                // Generates root id for date
                DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date = new Date();
                mLastUpdateTime = dateFormat.format(date);

                // Generates root id
                 mainRefKey = mainRef.push();

                isFirstTime = false;
            }


            // Generates new id for point
            Firebase wayRef1 = mainRefKey.push();
            String pointKey = wayRef1.getKey();


            // Create Waypoint > Point >  put lat and lon
            LinkedHashMap<String, Object> latLng = new LinkedHashMap<String, Object>();
            latLng.put("latitude", 123);
            latLng.put("longitude", 123);


            // Puts lat and lon  ** under a Point Key **
            pointHolder.put(pointKey, latLng);


            // Waypoint > POINT (contains multiple points)
            waypointHolder.put("points", pointHolder);
            waypointHolder.put("timeStamp", "24/3-2016");
            waypointHolder.put("travelType", "travel");


            // ROOT ID > Waypoint
            mainRefKey.updateChildren(waypointHolder);
        }
    });

所需结构的图片:

enter image description here

1 个答案:

答案 0 :(得分:0)

我建议您查看docs on saving data并阅读api docs

更改循环以执行以下操作:

while (isFirstTime) {
  // Generates root id for date
  DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Date date = new Date();
  mLastUpdateTime = dateFormat.format(date);

  // Generates root id
  mainRefKey = mainRef.child(mLastUpdateTime);


  isFirstTime = false;
}