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
發佈您的崩潰日誌? –
現在發佈。 –