[英]How to assign increment ID number from firebase
我是 Android Studio 的新手。 我想從“1”分配唯一的 id(增量),但是每當我注冊帳戶時,我總是只得到一個。
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String email = et_email.getText().toString().trim();
final String username = email.split("@")[0];
final String pwd = et_password.getText().toString().trim();
final long usr_id = 0; // not increment
if (email.isEmpty() || pwd.isEmpty()) {
et_email.setError("Entering Email Password Is required");
et_email.requestFocus();
return;
}
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
et_email.setError("Entering Valid Email is required");
}
if (pwd.length() < 3) {
et_password.setError("Password Length Should More Than 3");
et_password.requestFocus();
} else {
m_auth.createUserWithEmailAndPassword(email, pwd).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users");
DatabaseReference usr_uid = ref.child(m_auth.getCurrentUser().getUid());
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "Registration Successed", Toast.LENGTH_SHORT).show();
//User usr = new User(email,username,usr_id+1);
usr_uid.child("email").setValue(email);
usr_uid.child("username").setValue(username);
usr_uid.child("password").setValue(pwd);
usr_uid.child("icon").setValue("default_icon");
usr_uid.child("id").setValue(String.valueOf(usr_id+1));
Intent refer_to_home = new Intent(MainActivity.this, Home_Activity.class);
startActivity(refer_to_home);
finish();
}
else
Log.e("user_reg_fail", "Field Empty!");
}
});
}
}
});
這是我的 model:
public class User {
private String email;
private String username;
private long usr_id=0;
private String icon;
public User(String email, String username, long id) {
this.email = username;
this.username = username;
this.usr_id = id;
}
public void setIcon(String icon) {
this.icon = icon;
}
public User() {
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public long getId() {
return usr_id;
}
public void setId(long id) {
this.usr_id = id;
}
}
我得到的數據庫
dldnPGvVsHeQmVqHkuJS4no4g1r1
|-email: "effeff@gmail.com"
|-icon: "default_icon"
|-id: "1" //from one
|-password: "xxx"
|-username: "effeff"
gWEvZMOgi7hmuU5xOXhlG3vibgj1
|-email: "feefee@gmail.com"
|-icon: "default_icon"
|-id: "1" // id is still one
|-password: "xxx"
|-username: "feefee"
我不知道為什么它不增加 ID。 我怎樣才能獲得增量“2”“3”? 我可以成功注冊我的帳戶,但它只保留分配 ID“1”
所以在你的onClick
方法里面你有這些行
final long usr_id = 0; // not increment
...
usr_uid.child("id").setValue(String.valueOf(usr_id+1));
每次單擊該按鈕時, usr_id
都會將其值設置為 0。
使用 firebase 您有一個唯一的文檔 ID(您的問題中的示例是dldnPGvVsHeQmVqHkuJS4no4g1r1
, gWEvZMOgi7hmuU5xOXhlG3vibgj1
)您不需要任何額外的 id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.