Я пытаюсь создать нового пользователя и сохранить его в базе данных Firebase, но когда я нажимаю кнопку сохранения, в базе данных ничего не происходит, и поля editText не очищаются, как это должно быть после сохранения. Что мне здесь не хватает? Он не помещается в базу данных.
Это код для UserActivity
public class NewUserActivity extends AppCompatActivity {
private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference mDatabaseReference;
EditText mEditTextName;
EditText mEditTextAge;
EditText mEditTextCity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_user);
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference().child("NewUser");
mEditTextName = findViewById(R.id.et_name);
mEditTextAge = findViewById(R.id.et_age);
mEditTextCity = findViewById(R.id.et_city);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.save_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
// TODO: should change to save_menu
case R.id.btn_save:
saveNewUser();
Toast.makeText(this, "New User Saved!", Toast.LENGTH_LONG).show();
cleanAll();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void saveNewUser() {
String name = mEditTextName.getText().toString();
String age = mEditTextAge.getText().toString();
String city = mEditTextCity.getText().toString();
NewUser newUser = new NewUser (name, age, city, "");
mDatabaseReference.push().setValue(newUser);
// Error checking as suggested in the comments
mDatabaseReference.child("users").setValue(newUser)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// Write was successful!
Log.d("Saving", "Saved to the Database!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Write failed
Log.d("Not Saving", "Failed to save to the Database!");
}
});
}
public void cleanAll() {
mEditTextName.setText("");
mEditTextAge.setText("");
mEditTextCity.setText("");
}
}
Это файл макета
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res /android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".Activities.NewUserActivity">
<TextView
android:id="@+id/tv_createUser_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/newUser"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/et_name"
android:layout_width="379dp"
android:layout_height="wrap_content"
android:hint="@string/user_name"
android:importantForAutofill="no"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/et_age"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<EditText
android:id="@+id/et_age"
android:layout_width="379dp"
android:layout_height="wrap_content"
android:hint="@string/age"
android:importantForAutofill="no"
android:inputType="number"
app:layout_constraintBottom_toTopOf="@+id/et_city"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btn_addPhoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="@string/add_photo"
app:layout_constraintBottom_toTopOf="@+id/et_name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/iv_createnewuser"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:contentDescription="@string/user_profile_picture"
android:scaleType="fitCenter"
app:layout_constraintBottom_toTopOf="@+id/btn_addPhoto"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_createUser_header"
tools:srcCompat="@tools:sample/avatars" />
<EditText
android:id="@+id/et_city"
android:layout_width="379dp"
android:layout_height="wrap_content"
android:hint="@string/city"
android:importantForAutofill="no"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/et_dailygoal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@android:string/cancel"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<EditText
android:id="@+id/et_dailygoal"
android:layout_width="379dp"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:ems="10"
android:hint="@string/daily_steps"
android:importantForAutofill="no"
android:inputType="number"
app:layout_constraintBottom_toTopOf="@+id/btn_save"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>