2016-05-20 3 views
0

Я просто удивляюсь, как установить корневой идентификатор с ключом моих вместо нажатия клавиши(), который получает генерируется внутри цикла в то время как в верхней части ..Firebase Установить ключ корневого Id

-Waypoint 
    -RootID <-- This key 
     -Points 

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

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

waypointsUrl = Constants.FIREBASE_URL + "https://stackoverflow.com/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

ответ

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; 
} 
+0

Безразлично Не работай. Что такое someIdWouWant. Угадайте, что это идентификатор корня, но каков текущий идентификатор? –

+1

сделал это, чтобы заставить его работать: 'mainRef.child (mLastUpdateTime) .setValue (waypointHolder);' внизу. –

+0

Теперь я вижу, что он добавляет нажатый ключ вместе с моим собственным ключом, где нажатый ключ всегда один и перезаписывается. –

Смежные вопросы