将json对象保存到android中的firebase

shj*_*shj 9 android json pojo firebase

我是firebase的新手,我正在尝试将json对象数据放入我的firebase中.我知道如何将数据作为类对象放入firebase,但我想放置json对象数据.

有没有办法将json对象数据放入firebase而不将其转换为pojo?

Gra*_*Sim 8

是的,你可以做到这一点.首先将您的json转换为字符串,然后执行以下操作:

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

我正在使用"updateChildren"方法,因为我希望将JSON对象直接添加到我的子对象的根目录中

  firebaseDatabaseRef.child("users").child(uid).updateChildren(jsonMap);
Run Code Online (Sandbox Code Playgroud)

如果您不在乎或者您想设置新节点,请使用

 firebaseDatabaseRef.child("users").child(uid).child({your new node}).setValue(jsonMap);
Run Code Online (Sandbox Code Playgroud)


小智 6

在firebase上保存JSON值非常简单.假设你已经调用了你的firebase引用

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

然后,您将使用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);
Run Code Online (Sandbox Code Playgroud)


Vin*_*bbe 5

正如这里所建议的:Convert a JSON String to a HashMap

您可以轻松地将 json 对象/字符串转换为 a 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);
Run Code Online (Sandbox Code Playgroud)


Rea*_*hed 2

由于您在问题中标记了 android,所以我猜您想从 Android 客户端将一些数据放入 firebase 数据库中。

您有一些 JSON 数据,并且希望将其存储在 firebase 数据库中,对吗?这是完成它的分步过程。

我真的不知道你为什么要避免 POJO。它使整个操作更加简化。现在让我们假设您有一个 JSON 字符串。您需要将 JSON 映射到 java 类,以将其直接放入 firebase 中。Firebase 以类似 JSON 的格式存储数据,这种格式很容易理解。

我使用Gson将 JSON 字符串映射到特定的 java 对象。这是迄今为止我发现的最简单的方法,只需要几行代码。

Gson gson = new Gson();
YourPOJO myPOJO = gson.fromJson(jsonString, YourPOJO.class);
Run Code Online (Sandbox Code Playgroud)

现在您已成功将 JSON 字符串映射到myPOJO对象。您现在已准备好将此对象放入 Firebase 数据库中。

让我们引用您的 Firebase 数据库,然后调用setValue您想要放置数据的特定节点。

Firebase ref = new Firebase(YOUR_FIREBASE_REF);
ref.setValue(myPOJO);
Run Code Online (Sandbox Code Playgroud)

简单的!