2016-04-04 4 views
4

Я новичок в firebase, и я пытаюсь поместить данные объекта json в свою firebase. Я знаю, как помещать данные как объект класса в firebase, но я хочу поместить данные объекта json.сохранение объекта json для firebase в android

Есть ли способ разместить данные объекта json в firebase без преобразования его в качестве pojo?

+0

я думаю, без POJO очень трудно хранить данные в firebase ..... – sushildlh

+0

Firebase сохраняет данные в формате JSON, нопочему я не могу сохранить данные как json? – shj

+0

Не могли бы вы разместить данные json, которые хотите сохранить в firebase? –

ответ

1

Как вы помечены андроида в вашем вопросе, так что я предполагаю, что вы хотите поставить некоторые данные в вашей базе данных firebase от клиента Android.

У вас есть данные JSON и вы хотите сохранить их в базе данных firebase? Это шаг за шагом процедура, чтобы сделать это.

Я действительно не знаю, почему вы пытаетесь избежать POJO. Это упрощает общую операцию. Теперь предположим, что у вас строка JSON. Вам нужно сопоставить JSON с классом java, чтобы поместить его прямо в firebase. Firebase хранит данные в формате JSON, который легко понять.

Я использую Gson для сопоставления строки JSON с конкретным Java-объектом. Его самый простой метод, который я нашел до сих пор, нуждается в нескольких строках кодирования.

Gson gson = new Gson(); 
YourPOJO myPOJO = gson.fromJson(jsonString, YourPOJO.class); 

Теперь вы сопоставили свой JSON строку myPOJO объекта успешно. Теперь вы готовы разместить этот объект в своей базе данных Firebase.

Позволяет ссылаться на вашу базу данных Firebase, а затем вызывает setValue на этом конкретном узле, где вы хотите поместить данные.

Firebase ref = new Firebase(YOUR_FIREBASE_REF); 
ref.setValue(myPOJO); 

Простой!

5

Это так просто также сохранить JSON значение на базе огня. Допустим, вы назвали ваш firebase ссылка

Firebase ref = new Firebase("https://docs-examples.firebaseio.com/android/saving-data/fireblog"); 

Тогда вы будете передавать ваши данные с Map объектов. Map сохраняет значения с помощью клавиш. В вашем случае у вас будет ключ String и значение JSONObject.

Firebase userRef = ref.child("user"); 
Map<String, JSONObject> userMap= new HashMap<String, JSONObject>(); 
JSONObject tempObject = new JSONObject(); 

try{ 
    tempObject.put("birthday","1992"); 
    tempObject.put("fullName","Emin AYAR"); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 
userMap.put("myUser", tempObject); 

userRef .setValue(userMap); 
2

Как предложено здесь: Convert a JSON String to a HashMap

вы можете легко преобразовать объект JSON/строку в Map<String, Object> (вам даже не нужно создавать POJO):

Firebase ref = new Firebase(YOUR_FIREBASE_REF); 
Map<String, Object> map = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType()); 
ref.setValue(map); 
3

Да, вы может достичь этого.Начните путем преобразования JSON в строку, то сделайте следующее:

String jsonString; //set to json string 
    Map<String, Object> jsonMap = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType()); 

Я использую метод «updateChildren», потому что я хочу, чтобы объект JSON добавляется непосредственно к корню моего дочернего объекта

firebaseDatabaseRef.child("users").child(uid).updateChildren(jsonMap); 

Если вы не заботитесь, или вы хотели бы установить новый узел, используйте

firebaseDatabaseRef.child("users").child(uid).child({your new node}).setValue(jsonMap); 
+0

Просто заметил, что у другого плаката был тот же метод, я оставлю свой ответ на bcos дополнительной информации о том, как установить объект JSON в БД Firebase. – GraSim