2017-12-12 8 views
-1
public class MainActivity extends AppCompatActivity { 

    private Button btn; 
    private EditText et1,et2,et3; 
    DatabaseReference dr; 
    private static final String TAG = MainActivity.class.getSimpleName(); 
    DatabaseError error; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     et1 = (EditText)findViewById(R.id.editText1); 
     et2 = (EditText)findViewById(R.id.editText2); 
     et3 = (EditText)findViewById(R.id.editText3); 
     btn = (Button)findViewById(R.id.button); 
     class User{ 
      String name,email,password; 
      User() 
      {} 
      User(String name,String email,String password) 
      { 
       this.name=name; 
       this.email=email; 
       this.password=password; 
      } 
     } 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       String name = et1.getText().toString(); 
       String email = et2.getText().toString(); 
       String password = et3.getText().toString(); 
       User user = new User(name,email,password); 
       dr = FirebaseDatabase.getInstance().getReference("Profile-Detailed"); 
       String id = dr.push().getKey(); 
       dr.child(id).setValue(user); 
       Log.e(TAG, "Failed to read app title value.", error.toException()); 
      } 


     }); 
    } 
} 

それは活動のメソッドの名前であるデータベース見つかり競合ゲッター:データベース例外

DatabaseException:Found conflicting getters for name:isChaingingConfigurations. 

答えて

1

スタックトレースがisChangingConfigurationsを指し、にユーザデータを保存する必要があります。これは、クラスUserをアクティビティの内部クラスとして宣言したことを示している可能性があります。 FirebaseはUserをシリアル化するときに、それを囲むActivityクラスをシリアライズして失敗します。

ユーザーの宣言をパッケージレベルに移動するか、宣言を変更して静的な内部クラスにします。public static class User。

+0

ありがとう、それは私のために働いた。 –

関連する問題