如何从Android Studio将复杂数据保存在Firebase中?

时间:2018-10-01 20:57:12

标签: android firebase firebase-realtime-database

route是单个数据集。路由包含一个数组列出的字符串值。我想将其保存在Firebase数据库中。我该怎么办?

这是我的数据库的样子: database

1 个答案:

答案 0 :(得分:1)

您可以使用地图并设置所有数据,然后将其发送到数据库中

示例

 Map<String, Object> routeUp = new HashMap<>();
        routeUp.put("description", "EXAMPLE");
        routeUp.put("haultName", "NAME");
        routeUp.put("latitude","idontknowwhyyoustoreitwithastring");
        //... and so on
        mDatabase.child("route").child(routeUp).updateChildren(routeUp).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {

                Toast.makeText(mContext, "Success", Toast.LENGTH_SHORT).show();

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                progressDialog.dismiss();
                Toast.makeText(mContext, "Error saving the values " + e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

然后您可以合并多个HashMap,然后使用putAll一键发送所有结构

示例

map3 = new HashMap<>();
//...
map3.putAll(map1);
map3.putAll(map2);

然后只推送包含所有结构的地图

注意:请注意,如果一个或多个值为空,则发送如此多的数据可能会导致多个NPE(NullPointerException),您应该处理某种异常,