访问 firebase 数据库的 .push 键以更新 android 中的配置文件信息
access the .push key of firebase database for updating Profile info in android
我正在使用 Firebase
开发一个 android 应用程序,因此使用 .push
方法将数据保存到 Firebase 并将它们显示到 list
中,我想更新UserInfo
存储在数据库中,但我很困惑如何访问 push
生成的方法 Key
来更新个人资料信息,或以任何其他方式在经过身份验证的用户 ID 下设置个人资料信息并读取所有这些数据,以便它将在我显示的列表中更新。
或任何其他方法通过 User_id
在子值中访问它?
myOnBtnClick 下面的代码
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Validation()) {
final String name = Field_fullName.getText().toString();
String phone = firebaseUser.getPhoneNumber();
String bg = field_bloodGroups.getSelectedItem().toString();
String DOB = Field_dateOfBirth.getText().toString();
String state = Field_state.getText().toString();
final String country = Field_country.getText().toString();
String city = Field_city.getText().toString();
UserSignUp userSignUp = new UserSignUp(name, phone, bg, DOB, state, country, city, firebaseUser.getUid());
DBref.child("DONORS").child(country).push().setValue(userSignUp).addOnCompleteListener(reg.this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(reg.this, DBref.getKey() + "", Toast.LENGTH_SHORT).show();
Toast.makeText(reg.this, "User Created", Toast.LENGTH_SHORT).show();
editor = sharedPreference.edit();
editor.putInt("UserReg", 1);
editor.putString("UserCountry", country);
editor.putInt("FirstTimeRun", 1);
editor.apply();
startActivity(new Intent(reg.this, Main2Activity.class));
finish();
}
}
});
}
}
});
当您使用 push()
方法生成唯一密钥时,您可以像这样获取和存储密钥:
String key = yourRef.getKey();
要更新记录,请使用以下代码行:
FirebaseDatabase.getInstance().getReference()
.child("Pakistan")
.child(key)
.child("user_ID")
.setValue("123456789");
编辑:
DatabaseReference keyRef = DBref.child("DONORS").child(country).push();
String key = keyRef.getKey();
Log("TAG", key);
keyRef.setValue(userSignUp).addOnCompleteListener(/* ... */);
获得此密钥后,您可以在其他 DatabaseReference 中使用它。当您在 onComplete()
方法中使用 DBref.getKey()
时,未获得推送的密钥只是获得 DBref
.
的密钥
我正在使用 Firebase
开发一个 android 应用程序,因此使用 .push
方法将数据保存到 Firebase 并将它们显示到 list
中,我想更新UserInfo
存储在数据库中,但我很困惑如何访问 push
生成的方法 Key
来更新个人资料信息,或以任何其他方式在经过身份验证的用户 ID 下设置个人资料信息并读取所有这些数据,以便它将在我显示的列表中更新。
或任何其他方法通过 User_id
在子值中访问它?
myOnBtnClick 下面的代码
btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Validation()) {
final String name = Field_fullName.getText().toString();
String phone = firebaseUser.getPhoneNumber();
String bg = field_bloodGroups.getSelectedItem().toString();
String DOB = Field_dateOfBirth.getText().toString();
String state = Field_state.getText().toString();
final String country = Field_country.getText().toString();
String city = Field_city.getText().toString();
UserSignUp userSignUp = new UserSignUp(name, phone, bg, DOB, state, country, city, firebaseUser.getUid());
DBref.child("DONORS").child(country).push().setValue(userSignUp).addOnCompleteListener(reg.this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(reg.this, DBref.getKey() + "", Toast.LENGTH_SHORT).show();
Toast.makeText(reg.this, "User Created", Toast.LENGTH_SHORT).show();
editor = sharedPreference.edit();
editor.putInt("UserReg", 1);
editor.putString("UserCountry", country);
editor.putInt("FirstTimeRun", 1);
editor.apply();
startActivity(new Intent(reg.this, Main2Activity.class));
finish();
}
}
});
}
}
});
当您使用 push()
方法生成唯一密钥时,您可以像这样获取和存储密钥:
String key = yourRef.getKey();
要更新记录,请使用以下代码行:
FirebaseDatabase.getInstance().getReference()
.child("Pakistan")
.child(key)
.child("user_ID")
.setValue("123456789");
编辑:
DatabaseReference keyRef = DBref.child("DONORS").child(country).push();
String key = keyRef.getKey();
Log("TAG", key);
keyRef.setValue(userSignUp).addOnCompleteListener(/* ... */);
获得此密钥后,您可以在其他 DatabaseReference 中使用它。当您在 onComplete()
方法中使用 DBref.getKey()
时,未获得推送的密钥只是获得 DBref
.