Intro:我正尝试构建一个显示有关图书信息的Android应用程序(使用Google books API)。我最近向应用程序添加了firebase。 在这一刻我可以登录或注册到应用程序,我可以搜索图书(使用搜索视图),并且我已经为查询中创建的ListView中列出的每本图书添加了一个按钮。我在按钮中添加了功能如下所示:按钮(如果按下)应该将当前书籍(在Listview中)添加到FireBase中。Android:从Firebase中读取对象导致应用程序崩溃
我的下一步是获取所有用户在另一个活动添加的书叫CatalogActivity
public class CatalogActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalog);
GridView catalogListView = (GridView) findViewById(R.id.CatalogGridList);
final List<BookObject> books = new ArrayList<BookObject>();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = database.getReference();
databaseReference.child("books").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> children = dataSnapshot.getChildren();
for (DataSnapshot child : children) {
BookObject book = child.getValue(BookObject.class);
books.add(book);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
CatalogAdapter catalogAdapter = new CatalogAdapter(this, books);
catalogListView.setAdapter(catalogAdapter);
}
}
当我运行的应用程序,我点击CatalogActivity该应用程序崩溃。
我已经使用的调试与磨合点,我得到了以下结论:
-database实例和参考得到正确
所有BookObjects的-snapshot正确地获得(dataSnapshot
)
- 正确获得第一张儿童快照(child
)(不知道第一本书是否也添加到books
以及
再次按F8:应用程序跳转到循环方法Looper类和我的应用程序崩溃。
什么可能导致应用程序崩溃?
BookObject
类的要点是:BookObject
崩溃日志:
07-31 22:40:38.308 15567-15567/com.example.android.booktrade_v10 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.booktrade_v10, PID: 15567
com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: authors
at com.google.android.gms.internal.zh.zzhe(Unknown Source)
at com.google.android.gms.internal.zh.<init>(Unknown Source)
at com.google.android.gms.internal.zg.zzf(Unknown Source)
at com.google.android.gms.internal.zg.zzb(Unknown Source)
at com.google.android.gms.internal.zg.zza(Unknown Source)
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
at com.example.android.booktrade_v10.CatalogActivity$1.onDataChange(CatalogActivity.java:40)
at com.google.android.gms.internal.to.zza(Unknown Source)
at com.google.android.gms.internal.vj.zzHX(Unknown Source)
at com.google.android.gms.internal.vp.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
任何帮助,高度赞赏。
“Firebase导致应用程序崩溃”,firebase没有。 – Ibrahim
发布您的崩溃日志? –
现在发布。 –