2017-09-27 50 views
0

在嘗試保存具有Asset屬性的Firebase數據庫上的Object時遇到此錯誤。 類似的錯誤已被記錄在以下問題:在類com.contentful.vault.Asset上找不到要序列化的屬性

Firebase No properties to serialize found on class

Firebase No properties to serialize found with object in release mode

和其他幾個人。

一些建議的解決方案是

  1. 變化的變量聲明公共
  2. 添加@Keep到類聲明
  3. 添加-keepclassmembers class com.yourcompany.models.** { *; }在Proguard的規則

但這些都不選項已爲我工作。

我已經試過是創造了另一類是類的副本正在使用Vault,然後有一個String屬性,持有AssetURL但是這似乎是代碼和不必要的重複。

有沒有解決這個問題的方法?

回答

2

我是Mario Bodemann,是Contentful的Java和Android SDK的維護者。

我建議您分離Firebase用例和Contentful用例之間的關係,就像您建議的那樣。

通過這種方式,您可以確保爲Firebase提供所需模型,並滿足所需模型的內容,而不會混淆兩者。我不認爲它是重複的代碼,你正在重複數據。這對於不同的使用情況應該沒問題。

也許一些工廠從一種形式轉換到另一種形式的需求基礎上也會很方便。

否則,也許你可以分享更多的關於您的使用都在一個應用程序,我們可以能夠幫助你多一點...

問候, 馬里奧

+1

感謝馬里奧,我認爲我會堅持爲Contentful和Firebase分別開設課程。 –