如何将数组转换为列表而不是 Firebase?

Kus*_*lly 4 java android firebase firebase-realtime-database

我在 Android Studio 中收到此错误。以前版本的 Firebase SDK 支持此错误,但新的 SDK 不支持此错误。请帮助解决此问题。

\n\n
02-11 23:38:47.647  14487-14487/com.potenza_pvt_ltd.AAPS E/AndroidRuntime\xef\xb9\x95 FATAL EXCEPTION: main\n        Process: com.potenza_pvt_ltd.AAPS, PID: 14487\n        Theme: themes:{default=overlay:com.cyngn.hexo, iconPack:com.cyngn.hexo, fontPkg:com.cyngn.hexo, com.android.systemui=overlay:com.cyngn.hexo, com.android.systemui.navbar=overlay:com.cyngn.hexo}\n        com.google.firebase.database.DatabaseException: Converting to Arrays is not supported, please use Listsinstead\n                at com.google.android.gms.internal.zzaix.zzb(Unknown Source)\n                at com.google.android.gms.internal.zzaix.zza(Unknown Source)\n                at com.google.android.gms.internal.zzaix.zzb(Unknown Source)\n                at com.google.android.gms.internal.zzaix$zza.zze(Unknown Source)\n                at com.google.android.gms.internal.zzaix$zza.zzaC(Unknown Source)\n                at com.google.android.gms.internal.zzaix.zzd(Unknown Source)\n                at com.google.android.gms.internal.zzaix.zzb(Unknown Source)\n                at com.google.android.gms.internal.zzaix.zza(Unknown Source)\n                at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)\n                at com.potenza_pvt_ltd.AAPS.ExitReceipt$7.onChildAdded(ExitReceipt.java:322)\n                at com.google.android.gms.internal.zzaer.zza(Unknown Source)\n                at com.google.android.gms.internal.zzagp.zzSu(Unknown Source)\n                at com.google.android.gms.internal.zzags$1.run(Unknown Source)\n                at android.os.Handler.handleCallback(Handler.java:739)\n                at android.os.Handler.dispatchMessage(Handler.java:95)\n                at android.os.Looper.loop(Looper.java:148)\n                at android.app.ActivityThread.main(ActivityThread.java:5461)\n                at java.lang.reflect.Method.invoke(Native Method)\n                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 POJO 类

\n\n
@IgnoreExtraProperties\npublic class TariffDetails {\n\n    private String vehicle_type;\n    private String key;\n    private String total_slab_hrs;\n    private String no_of_slab_hrs;\n    private String inc_dur_hrs;\n    private String tariff;\n    private String code;\n    private int[][] arr;\n\n    public TariffDetails() {\n\n            /*Blank default constructor essential for Firebase*/\n    }\n    public TariffDetails(String a){\n\n    }\n    @JsonProperty("Key")\n    public String getKey(){\n        return key;\n    }\n    @JsonProperty("Key")\n    public void setKey(String key){\n        this.key=key;\n    }\n    @JsonProperty("vtype")\n    public String getVehicle_type(){\n        return vehicle_type;\n    }\n    @JsonProperty("vtype")\n    public void setVehicle_type(String key){\n        this.vehicle_type=key;\n    }\n    @JsonProperty("total_slab_hrs")\n    public String getTotal_slab_hrs(){\n        return total_slab_hrs;\n    }\n    @JsonProperty("total_slab_hrs")\n    public void setTotal_slab_hrs(String key){\n        this.total_slab_hrs=key;\n    }\n    @JsonProperty("no_of_slab_hrs")\n    public String getNo_of_slab_hrs(){\n        return no_of_slab_hrs;\n    }\n    @JsonProperty("no_of_slab_hrs")\n    public void setNo_of_slab_hrs(String key){\n        this.no_of_slab_hrs=key;\n    }\n    @JsonProperty("inc_dur_hrs")\n    public String getInc_dur_hrs(){\n        return inc_dur_hrs;\n    }\n    @JsonProperty("inc_dur_hrs")\n    public void setInc_dur_hrs(String key){\n        this.inc_dur_hrs=key;\n    }\n    @JsonProperty("inslipp_tariff")\n    public String getInslip_tariff(){\n        return tariff;\n    }\n    @JsonProperty("inslipp_tariff")\n    public void setInslip_tariff(String key){\n        this.tariff=key;\n    }\n    @JsonProperty("code")\n    public String getCode(){\n        return code;\n    }\n    @JsonProperty("code")\n    public void setCode(String key){\n        this.code=key;\n    }\n    @JsonProperty("arr")\n    public int[][] getArr(){\n        return arr;\n    }\n    @JsonProperty("arr")\n    public void setArr(int[][] a){\n        this.arr=a;\n    }\n\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我称之为的主要部分。

\n\n
Query queryRef1 = reference.child("users").child("Tariff_Details").orderByChild("vtype").equalTo(code_value_1);\n            queryRef1.addChildEventListener(new ChildEventListener() {\n                @Override\n                public void onChildAdded(DataSnapshot dataSnapshot, String s) {\n                    Log.d("value of get data", dataSnapshot.getKey());\n                    TariffDetails post = dataSnapshot.getValue(TariffDetails.class);\n                    tar_arr = post.getArr();\n                    for (int i = 0; i < tar_arr.length; i++) {\n                        for (int j = 0; j < 3; j++) {\n                            Log.d("ARR", String.valueOf(tar_arr[i][j]));\n                            arr.add(tar_arr[i][j]);\n                        }\n                    }\n                    if(tar_arr!=null){\n                        adapter = new CustomGrid(getApplicationContext(), tar_arr,code_value_1);\n                        gridView.setAdapter(adapter);\n                        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {\n\n                            @Override\n                            public void onItemClick(AdapterView<?> parent, View view,\n                                                    int position, long id) {\n                                Toast.makeText(parent.getContext(), "You Clicked at " + position, Toast.LENGTH_SHORT).show();\n                            }\n                        });\n                        adapter.notifyDataSetChanged();\n                    }\n                    f[0] =1;\n                    pb1.setVisibility(View.GONE);\n                    linear_layout.setVisibility(View.VISIBLE);\n                }\n\n                @Override\n                public void onChildChanged(DataSnapshot dataSnapshot, String s) {\n                    Log.d("value of get data", dataSnapshot.getKey());\n                    TariffDetails post = dataSnapshot.getValue(TariffDetails.class);\n                    tar_arr = post.getArr();\n                    for (int i = 0; i < tar_arr.length; i++) {\n                        for (int j = 0; j < 3; j++) {\n                            Log.d("ARR", String.valueOf(tar_arr[i][j]));\n                            arr.add(tar_arr[i][j]);\n                        }\n                    }\n                    if(tar_arr!=null){\n                        adapter = new CustomGrid(getApplicationContext(), tar_arr,code_value_1);\n                        gridView.setAdapter(adapter);\n                        adapter.notifyDataSetChanged();\n                    }\n                }\n\n                @Override\n                public void onChildRemoved(DataSnapshot dataSnapshot) {\n                    tar_arr = null;\n                    adapter.notifyDataSetChanged();\n                }\n\n                @Override\n                public void onChildMoved(DataSnapshot dataSnapshot, String s) {\n\n                }\n\n                @Override\n                public void onCancelled(DatabaseError firebaseError) {\n\n                }\n            });\n
Run Code Online (Sandbox Code Playgroud)\n

Gri*_*ram 5

简单使用Arrays.asList(yourArray)即可将其作为列表。