Пожалуйста, обратите внимание на последнюю строку onClick. После нажатия register_btn
новый loanedBook
действительно сохраняется в базе данных, но открывается непредвиденное намерение (намерение, которое было создано за 2 намерения до этого).
Если я удалю последнюю строку onClick, неожиданное намерение не будет открыто.
Картинка в приведенной ниже ссылке описывает базу данных до нажатия register_btn.
Я попытался изменить путь к базе данных, в которой я сохраняю значение:
database.child("users").child("1").child("loaned books").setValue(loanedBook)
и все работало нормально (неожиданное намерение не открылось).
Я попытался изменить getUserId на определенный userId ("kJeV8 ...."), и это не решило проблему.
LoanedBook - простой класс, ничего особенного. если хотите, я тоже могу добавить.
Пожалуйста, помогите
база данных перед нажатием кнопки:
![image of database before clicking the button](https://i.stack.imgur.com/8bGeA.png)
@Override
public void onClick(View view) {
if (view.getId() == R.id.register_btn) {
my_database.getBookList().get(itemNum).waiting_list.add(user);
database.child("books").child("" + book_id).child("waiting list").setValue(my_database.getBookList().
get(itemNum).waiting_list);
if (register_waiting_list.getText().equals("Get the book")) {
my_database.setOwnerDetails(book_id);
LoanedBook loanedBook = new LoanedBook(book_id, my_database.getBook_name(book_id),my_database.getAuthor_name(book_id));
my_database.addLoanedBook(loanedBook);
}
}
public void addLoanedBook(LoanedBook loanedBook){ //this func is in MyDatabase class
loanedBook_list.add(loanedBook);
database.child("users").child(getUserId()).child("loaned books").setValue(loanedBook_list);
}
public class LoanedBook {
private int book_id;
private String name;
private String author;
public LoanedBook(int book_id, String name, String author){
this.book_id = book_id;
this.name = name;
this.author = author;
}
public int getBookId(){
return book_id;
}
public String getBookName(){
return name;
}
public String getAuthor(){
return author;
}
}
когда пользователь входит (с помощью авторизации в facebook), я создаю нового пользователя и устанавливаю значение (пользователя) в базу данных
public class User {
private MyDatabase my_database = MyFirebaseDatabase.getInstance();
private String name;
private String city;
private String email;
private ArrayList<LoanedBook> loanedBooks_list;
User(){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
city = null;
name = user.getDisplayName();
email = user.getEmail();
loanedBooks_list = new ArrayList<LoanedBook>();
}
public String getName(){
return name;
}
public String getCity(){
return city;
}
public String getEmail(){
return email;
}
public void setCity(String city){
this.city = city;
}
public ArrayList<LoanedBook> getLoanedBooks_list(){
return my_database.getLoanedBookList();
}
}