Yug*_*esh 5 android firebase firebase-realtime-database
我是Firebase数据库的新手,我只想保存Firebase数据库中的数据数组.当我试图保存它显示错误.下面我在保存数据时提到了POJO类和Logcat错误.
POJO类编码
@IgnoreExtraProperties
public class StudentReviews {
public String student_name;
public String student_class;
public String student_image;
public String student_section;
public ArrayList<Reviews> reviewsList = new ArrayList<>();
public void StudentReviews() {}
public class Reviews {
public String subject;
public String marks_taken;
public String total_marks;
public String teacher;
}
}
Run Code Online (Sandbox Code Playgroud)
保存数据
StudentReviews studentReviews = new StudentReviews();
studentReviews.student_name = et_studentName.getText().toString();
studentReviews.student_class = et_student_class.getText().toString();
studentReviews.student_image = "";
studentReviews.student_section = sp_section.getSelectedItem().toString();
studentReviews.reviewsList = reviewsArray;
dbUploadReview.push().setValue(studentReviews); //165th Line in Logcat Error
Run Code Online (Sandbox Code Playgroud)
Logcat错误
com.google.firebase.database.DatabaseException: Invalid key: this$0. Keys must not contain '/', '.', '#', '$', '[', or ']'
at com.google.android.gms.internal.zzbtf.zzjq(Unknown Source)
at com.google.android.gms.internal.zzbtf.zzay(Unknown Source)
at com.google.android.gms.internal.zzbtf.zzay(Unknown Source)
at com.google.android.gms.internal.zzbtf.zzay(Unknown Source)
at com.google.firebase.database.DatabaseReference.zza(Unknown Source)
at com.google.firebase.database.DatabaseReference.setValue(Unknown Source)
at com.trending.trendingadmin.fragment.WriteReview.uploadReviews(WriteReview.java:165)
Run Code Online (Sandbox Code Playgroud)
当我 在Firebsae数据库中保存的POJO类数据中完全删除了这个public ArrayList<Reviews> reviewsList = new ArrayList<>();reviewsList .
任何人都知道帮我解决这个问题.
更新
我通过两种方式解决了这个问题.OlegOsipenko给出的建议
1)使内部类成为静态
2)将内部类移动到另一个文件.
现在它的工作和我预期的一样好.
.setValue() 方法需要一个列表而不是数组。您可以使用对象列表。
Firebase ref = new Firebase("<my-firebase-app>/names"):
String[] names = {"John","Tim","Sam","Ben"};
List nameList = new ArrayList<String>(Arrays.asList(names));
// Now set value with new nameList
ref.setValue(nameList);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5099 次 |
| 最近记录: |