簡體   English   中英

如何解決這些問題? " 無法反序列化 object。"

[英]How to solve this problems? " Could not deserialize object. "

java.lang.RuntimeException:無法反序列化 object。 Class com.example.knowledgegain.User 沒有定義無參數構造函數。 如果您使用 ProGuard,請確保未剝離這些構造函數。

或在這種情況下從 Firestore 獲取數據的任何其他方式?

顯示此異常。

這個 object 中的問題。

公共 class WalletFragment 擴展 Fragment {

public WalletFragment() {
    // Required empty public constructor
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

FragmentWalletBinding binding;
FirebaseFirestore database;
User user;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    binding = FragmentWalletBinding.inflate(inflater,container,false);
    database = FirebaseFirestore.getInstance();

    try {

        database.collection("User").document(FirebaseAuth.getInstance().getUid())
        .get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
            @Override
            public void onSuccess(DocumentSnapshot documentSnapshot) {
                try {

                    user = documentSnapshot.toObject(User.class);
                    binding.showCoinsId.setText(String.valueOf(user.getCoins()));

                }catch (Exception e){
                    Log.e("TAG", "onSuccess: ", e );
                }
            }
        });

    }catch (Exception e){
        Log.d("TAg", e.toString());
        Toast.makeText(getContext(),e.toString(),Toast.LENGTH_LONG).show();
    }

    return binding.getRoot();
}

}

不應WalletFragment中添加無參數構造函數。 必須在User class 中添加。 為什么? 因為在使用以下代碼行時,您需要反序列化來自 Firestore 的對象:

user = documentSnapshot.toObject(User.class);

有關更多信息,請查看我在以下帖子中的回答:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM