Храните несколько узлов в базе данных Firebase Realtime - PullRequest
0 голосов
/ 10 апреля 2020

Я новичок в использовании Firebase и Android Studio, и мне нужно несколько узлов для сохранения в базе данных реального времени в Firebase из моего приложения android, включая пользователей, бюджеты и расходы, поскольку это приложение отслеживания расходов. У меня есть пользовательская информация для сохранения под собственным узлом, но я не могу понять, как создать узлы для бюджета и расходов. Код ниже, с чем у меня возникают трудности:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_categories);
    setupUIViews();
    firebaseAuth = getInstance();
    mDatabase = FirebaseDatabase.getInstance().getReference();

    btn_subCat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(validate()){
                sendUserBudgets();
                Toast.makeText(Categories.this, "Completed!", Toast.LENGTH_LONG).show();
                finish();
                startActivity(new Intent(Categories.this, Menu.class ));
            }else{
                Toast.makeText(Categories.this, "Submission failed", Toast.LENGTH_LONG).show();
            }
        }
    });
}
private void setupUIViews() {
    travel_input = (EditText)findViewById(R.id.travel_input);
    entertainment_input = (EditText)findViewById(R.id.entertainment_input);
    fitness_input = (EditText)findViewById(R.id.fitness_input);
    beauty_input = (EditText)findViewById(R.id.beauty_input);
    clothes_input = (EditText)findViewById(R.id.clothes_input);
    holiday_input = (EditText)findViewById(R.id.holiday_input);
    food_input = (EditText)findViewById(R.id.food_input);
    mobile_input = (EditText)findViewById(R.id.mobile_input);
    btn_subCat = (Button)findViewById(R.id.btn_subCat);

}

private Boolean validate() {
    boolean result = false;
    travel_budget = Double.parseDouble(travel_input.getText().toString().trim());
    entertainment_budget = Double.parseDouble(entertainment_input.getText().toString().trim());
    fitness_budget = Double.parseDouble(fitness_input.getText().toString().trim());
    beauty_budget = Double.parseDouble(beauty_input.getText().toString().trim());
    clothes_budget = Double.parseDouble(clothes_input.getText().toString().trim());
    holiday_budget = Double.parseDouble(holiday_input.getText().toString().trim());
    food_budget = Double.parseDouble(food_input.getText().toString().trim());
    mobile_budget = Double.parseDouble(mobile_input.getText().toString().trim());

    if(travel_budget.equals(null) || entertainment_budget.equals(null) || fitness_budget.equals(null) || beauty_budget.equals(null) || clothes_budget.equals(null) || holiday_budget.equals(null) || food_budget.equals(null) ||
            mobile_budget.equals(null)){
        Toast.makeText(Categories.this, "Please enter all fields", Toast.LENGTH_LONG).show();
    } else {
        result = true;
    }
    return result;
}

private void sendUserBudgets() {
    String currentUserID = firebaseAuth.getUid();
    CategoriesDB catDb = new CategoriesDB(travel_budget, entertainment_budget, fitness_budget, beauty_budget, clothes_budget, holiday_budget, food_budget, mobile_budget);
    mDatabase.child("User").child(currentUserID).child("Budgets").setValue(catDb);
}

1 Ответ

0 голосов
/ 10 апреля 2020
private void validate() {
    boolean result = false;
    travel_budget = Double.parseDouble(travel_input.getText().toString().trim());
    entertainment_budget = Double.parseDouble(entertainment_input.getText().toString().trim());
    fitness_budget = Double.parseDouble(fitness_input.getText().toString().trim());
    beauty_budget = Double.parseDouble(beauty_input.getText().toString().trim());
    clothes_budget = Double.parseDouble(clothes_input.getText().toString().trim());
    holiday_budget = Double.parseDouble(holiday_input.getText().toString().trim());
    food_budget = Double.parseDouble(food_input.getText().toString().trim());
    mobile_budget = Double.parseDouble(mobile_input.getText().toString().trim());

    if(travel_budget.equals(null) || entertainment_budget.equals(null) || fitness_budget.equals(null) || beauty_budget.equals(null) || clothes_budget.equals(null) || holiday_budget.equals(null) || food_budget.equals(null) ||
            mobile_budget.equals(null)){
        Toast.makeText(Categories.this, "Please enter all fields", Toast.LENGTH_LONG).show();
    } else {
        sendUserBudgets(travel_budget, fitness_budget, beauty_budget, clothes_budget, holiday_budget, food_budget, mobile_budget);
    }
}

private void sendUserBudgets(double travel_budget, double fitness_budget, double beauty_budget, double clothes_budget, double holiday_budget, doublefood_budget, double mobile_budget) {
    String currentUserID = firebaseAuth.getUid();
    CategoriesDB catDb = new CategoriesDB(travel_budget, entertainment_budget, fitness_budget, beauty_budget, clothes_budget, holiday_budget, food_budget, mobile_budget);
    mDatabase.child("User").child(currentUserID).child("Budgets").setValue(catDb);
}

Здесь, как только вы получили все пользовательские данные и выполнили все проверки, вам нужно вызвать функцию sendUserBudgets(), чтобы сохранить ее в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...