0

ドキュメントをカスタムクラスにマップしようとしていますが、ログなしでアプリケーションが絶えずクラッシュしています。ログのないクラッシュ:toObject

まだ学習中ですので、"pin"という値の"0"という1つのエントリしか含まれていません。

これはコードです:

public Response<User> login(LoginRequest request) { 
    Task<DocumentSnapshot> task = firestore.collection(NetDatabase.Collections.USERS) 
      .document(request.getDni()) 
      .get(); 

    DocumentSnapshot document = null; 
    try { 
     document = Tasks.await(task); 
    } catch (Exception e) { 
     return new Response<>(new Error()); 
    } 

    if (document != null && document.exists()){ 
     User user = document.toObject(User.class); // <-- CRASH 
     if (user.getPin().equals(request.getPin())){ 
      return new Response<>(user); 
     } 
    } 
    return new Response<>(new Error()); 
} 

そして、これがUserクラスです:

public class User extends RealmObject implements NetResponse { 

    private String id; 
    private String pin; 

    public User(){ } 

    public User(String pin){ 
     this.pin = pin; 
    } 

    public String getId() { 
     return id; 
    } 

    @Override 
    public void setId(String id) { 
     this.id = id; 
    } 

    public String getPin() { 
     return pin; 
    } 
} 

public interface NetResponse { 
    void setId(String id); 
} 

私はprivatepublicの間で交換しようとしましたが、結果は同じまま。 documentは正しく検索され、上記の値を持つ単一のエントリが含まれています。

答えて

0

私はそれを解決しました。

基本的に、Firestoreはを作成しているため、extends RealmObjectになると何らかの矛盾が発生する可能性があります。それを消去した後は、意図どおりに動作します。

関連する問題