当将数据注册到Firebase实时以外的其他字段时,我不明白为什么这个问题,有人可以帮我吗?
问题是灌装时Firebase记录中的“地址”字段将用电子邮件填充,而电子邮件则用电话号码填充。有人知道我在做什么错吗?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registro);
editTextName = (EditText) findViewById(R.id.edit_text_name);
editaddress = (EditText) findViewById(R.id.editaddress);
editfullname = (EditText) findViewById(R.id.editfullname);
editTextEmail = (EditText) findViewById(R.id.edit_text_email);
editTextPassword = (EditText) findViewById(R.id.edit_text_password);
editTextPhone = (EditText) findViewById(R.id.edit_text_phone);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
progressBar.setVisibility(View.GONE);
private void registerUser() {
final String helpsms = editTextName.getText().toString().trim();
final String email = editTextEmail.getText().toString().trim();
String password = editTextPassword.getText().toString().trim();
final String address = editaddress.getText().toString().trim();
final String fullname = editfullname.getText().toString().trim();
final String phone = editTextPhone.getText().toString().trim();
progressBar.setVisibility(View.VISIBLE);
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
User user = new User(
helpsms,
email,
phone,
address,
fullname
);
FirebaseDatabase.getInstance().getReference("Users")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
progressBar.setVisibility(View.GONE);
if (task.isSuccessful()) {
Toast.makeText(RegistroActivity.this, getString(R.string.registration_success), Toast.LENGTH_LONG).show();
} else {
//display a failure message
}
}
});
} else {
Toast.makeText(RegistroActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
Users.java
public class User {
public String helpsms;
public String email;
public String phone;
public String address;
public String fullname ;
public User(String helpsms, String address, String email, String phone, String fullname) {
this.helpsms = helpsms;
this.email = email;
this.phone = phone;
this.address = address;
this.fullname = fullname;
}
}
活动注册xml
<EditText
android:id="@+id/editfullname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="FULL NAME"
android:nextFocusDown="@id/edit_text_name"
android:textColor="#000000"
android:textColorHint="#000000" />
<EditText
android:id="@+id/edit_text_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/full_name"
android:nextFocusDown="@id/editaddress"
android:textColor="#000000"
android:textColorHint="#000000" />
<EditText
android:id="@+id/editaddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="FULL ADDRESS"
android:nextFocusDown="@id/edit_text_email"
android:textColor="#000000"
android:textColorHint="#000000" />
<EditText
android:id="@+id/edit_text_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/email"
android:inputType="textEmailAddress"
android:nextFocusDown="@id/edit_text_password"
android:textColor="#000000"
android:textColorHint="#000000" />
<EditText
android:id="@+id/edit_text_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password"
android:inputType="textPassword"
android:nextFocusDown="@id/edit_text_phone"
android:textColor="#000000"
android:textColorHint="#000000" />
<EditText
android:id="@+id/edit_text_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="0123456789"
android:hint="@string/phone"
android:inputType="number"
android:maxLength="11"
android:nextFocusDown="@id/button_register"
android:textColor="#000000"
android:textColorHint="#000000" />
<Button
android:id="@+id/button_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/register"
android:textAllCaps="false"
android:background="#127E3F"
android:textColor="#FFFFFF"
/>
</LinearLayout>
您的构造函数是错误的。我希望您自己生成。如您在此处看到的,您的参数已经将地址设置为第二个参数。
public User(String helpsms, String address, String email, String phone, String fullname) {
this.helpsms = helpsms;
this.email = email;
this.phone = phone;
this.address = address;
this.fullname = fullname;
}
因此,我建议您将其全部删除。如果您使用的是Windows,请在课程中的任意位置单击,然后按ALT + INSERT。选择构造函数并全选。
或者您可以在这里手动进行。
public User(String helpsms, String email, String phone, String address, String fullname) {
this.helpsms = helpsms;
this.email = email;
this.phone = phone;
this.address = address;
this.fullname = fullname;
}