Android 是否自动添加其他firebase数据库字段?
我有一门书课Android 是否自动添加其他firebase数据库字段?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我有一门书课 public class Books { public String bookName; public String author; public String copies; public Books() { // Default constructor required for calls to DataSnapshot.getValue(User.class) } public Books(String n
public class Books {
public String bookName;
public String author;
public String copies;
public Books() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public Books(String name, String author, String copies) {
this.bookName = name;
this.author = author;
this.copies = copies;
}
public String getBookName() {
return bookName;
}
public String getAuthorName() {
return author;
}
public String getCopies() {
return copies;
}
}
我将添加到firebase实时云数据库
mDatabase = FirebaseDatabase.getInstance("https://cmpe-2b339.firebaseio.com").getReference();
Books book = new Books(bookName,author,copies);
mDatabase.push().setValue(book);
然而在firebase concole,它的到来
{
"-KzAt3eHDBtD7gFvLIbn" : {
"author" : "J",
"authorName" : "J",
"bookName" : "Hi",
"copies" : "5"
}
}
添加了author字段,我不理解这一点您有一个名为“author”的公共变量和一个名为“getAuthorName”的公共getter。Firebase反射正在使用这两种方法在数据库中创建数据。修复:将变量设置为私有,保留getter,然后添加setter。您有一个名为“author”的公共变量和一个名为“getAuthorName”的公共getter。Firebase反射正在使用这两种方法在数据库中创建数据。修正:将变量设为私有,保留getter,然后添加setter。用这个替换类
public class Books {
private String bookName;
private String author;
private String copies;
public Books () {
}
public Books(String bookName, String author, String copies) {
this.bookName = bookName;
this.author = author;
this.copies = copies;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getCopies() {
return copies;
}
public void setCopies(String copies) {
this.copies = copies;
}
}
用这个替换你的类
public class Books {
private String bookName;
private String author;
private String copies;
public Books () {
}
public Books(String bookName, String author, String copies) {
this.bookName = bookName;
this.author = author;
this.copies = copies;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getCopies() {
return copies;
}
public void setCopies(String copies) {
this.copies = copies;
}
}
这意味着什么。它解决了这个问题?反射是一个Java属性,您可以在不知道方法或变量名称的情况下访问另一个类。Firebase使用反射检查正在上载的CALS。这就是为什么您应该使用standar POJO java类来实现这一点。另一个答案指向同一个方向。这意味着什么。它解决了这个问题?反射是一个Java属性,您可以在不知道方法或变量名称的情况下访问另一个类。Firebase使用反射检查正在上载的CALS。这就是为什么要使用standar POJO java类来实现这一点。