Как добавить новые атрибуты в существующие данные в базе данных Firebase Realtime? - PullRequest
0 голосов
/ 09 февраля 2020

Я создаю приложение в Android Studio, которое позволит зарегистрированным пользователям бронировать поездки. Для этого случая у меня есть 2 действия: DepartGermany и DepartGermany2.

В первом упражнении создается новый узел Trip, содержащий 3 атрибута: city, zip, street.

Во втором упражнении я хочу, чтобы пользователь добавил номер телефона и имя для тот же идентификатор "поездки". Как бы вы порекомендовали мне это сделать?

Ниже приведен код для первого действия, которое работает нормально. Заранее спасибо!

public class DepartGermany extends AppCompatActivity {

    Spinner spinnerCity;

    EditText editTextZIP;
    EditText editTextStreet;

    Button buttonAdd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_depart_germany);

        spinnerCity = (Spinner) findViewById(R.id.selectCountries);
        editTextZIP = (EditText) findViewById(R.id.editTextZIP);
        editTextStreet = (EditText) findViewById(R.id.editTextStreet);
        buttonAdd = (Button) findViewById(R.id.addButton);


        String currentUser = FirebaseAuth.getInstance().getCurrentUser().getUid();

        databaseTrips = FirebaseDatabase.getInstance().getReference("TripsAll").child(currentUser);

        buttonAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addTrip();
            }
        });
    }

    private void addTrip(){
        String city = spinnerCity.getSelectedItem().toString().trim();
        String zip = editTextZIP.getText().toString().trim();
        String street = editTextStreet.getText().toString().trim();

    String id = databaseTrips.push().getKey();

        Trips trip = new Trips(
                city,
                zip,
                street
        );

    databaseTrips.child(id).setValue(trip);

        Intent intent = new Intent(DepartRomania.this, DepartGermany2.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }
}

1 Ответ

0 голосов
/ 09 февраля 2020

Вам необходимо знать ключ / идентификатор поездки, в которую вы хотите добавить данные. После того, как вы это сделаете, обновление узла новыми свойствами будет зависеть от:

HashMap<String, Object> values = new HashMap<>();
values.put("phonenumber", "+1-800-555-6789");
values.put("name", "Name of the trip");
databaseTrips.child(id).updateChildren(values);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...