#android #firebase #firebase-realtime-database
#Android #firebase #firebase-база данных в реальном времени
Вопрос:
это моя текущая кодировка, я хочу сохранить клавишу push () к моменту нажатия кнопки отправки. Дерево будет иметь вид uid> push key> propertyid (нажимная клавиша), name и так далее.
кодирование предназначено для приложения Android. Спасибо
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Property");
String OwnerID = firebaseUser.getUid();
String name = property_name.getText().toString();
String address = property_address.getText().toString();
String postal = property_postal.getText().toString();
String state = property_state.getText().toString();
String detail = property_detail.getText().toString();
String imageUrl = "default";
Advertise adv = new Advertise(name,address,postal,state,detail,imageUrl,OwnerID);
if (TextUtils.isEmpty(name)){
Toast.makeText(getActivity(),"Enter Property Name!",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(address)){
Toast.makeText(getActivity(),"Enter Property Address!",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(postal)){
Toast.makeText(getActivity(),"Enter Property Postal Code!",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(detail)){
Toast.makeText(getActivity(),"Enter Property Details!",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(state)){
Toast.makeText(getActivity(),"Enter Property State/Province!",Toast.LENGTH_SHORT).show();
return;
}
reference.child(firebaseUser.getUid()).push().setValue(adv)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(getActivity(),"Advertisement published",Toast.LENGTH_LONG).show();
}else {
Toast.makeText(getActivity(),"Something went wrong!",Toast.LENGTH_LONG).show();
}
}
});
}
});
Ответ №1:
Внутри onClick()
выполните следующее:
String key = reference.child(firebaseUser.getUid()).push().getKey();
reference.child(firebaseUser.getUid()).child(key).setValue(adv)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(getActivity(),"Advertisement published",Toast.LENGTH_LONG).show();
}else {
Toast.makeText(getActivity(),"Something went wrong!",Toast.LENGTH_LONG).show();
}
}
});
Вам нужно сохранить push()
ключ в переменной, а затем вы можете использовать его в качестве аргумента внутри метода child()
и передавать его через activities с использованием Intent
.