【发布时间】:2018-01-07 11:34:50
【问题描述】:
简介:我正在尝试构建一个显示书籍信息的 android 应用程序(使用 Google 书籍 API)。我最近在应用程序中添加了 firebase。 此时我可以登录或注册到应用程序,我可以搜索书籍(带有搜索视图),并且我为从查询创建的 ListView 中列出的每本书添加了一个按钮。我为按钮添加了功能它遵循:按钮(如果按下)应该将当前书籍(在 Listview 中)添加到 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 时,应用会崩溃。
我使用过断点调试,得出以下结论:
-正确获取数据库实例和引用
-正确获取所有BookObjects的快照(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 causes application to crash,firebase 没有。 -
发布您的崩溃日志?
-
现在发布。
-
请加你pojo类
标签: android firebase firebase-realtime-database