尝试在 firebase 上填充列表视图时没有 setter/field
No setter/field for while trying to populate a listview on firebase
我正在尝试从 firebase 检索数据并使用 firebase-ui 将其显示在我的列表视图中。代码运行良好,但列表视图中没有显示任何内容。这是我从日志中得到的:
W/ClassMapper: No setter/field for -KNRXdDOlA9nV6qxXvOl found on class com.example.sammie.coreteccontacts.Sacco
这是我的 FirebaselistAdapter
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference();
FirebaseListAdapter<Sacco> adapter = new FirebaseListAdapter<Sacco>(getActivity(), Sacco.class, android.R.layout.simple_list_item_1, mDatabaseReference) {
@Override
protected void populateView(View view, Sacco sacco, int i) {
((TextView)view.findViewById(android.R.id.text1)).setText(Sacco.getName());
}
};
contactList.setAdapter(adapter);
这是我的萨科 class:
package com.example.sammie.coreteccontacts;
public class Sacco {
String description;
String location;
static String name;
public Sacco() {
}
public Sacco(String description, String location, String name) {
this.name = name;
this.description = description;
this.location = location;
}
public static String getName() {
return name;
}
public String getDescription() {
return description;
}
public String getLocation() {
return location;
}
}
这是来自 firebase 的数据示例
KNRWnG6BTkbGJQJVq9Qaddclose
description:"test description"
location: "test location"
name: "test name"
您的 class 中没有 setter 方法。
public void setName(String name) {
this.name = name;
}
public void setDescription(String description) {
this.description = description;
}
public void setLocation(String location) {
this.location = location;
}
但是
-KNRWnG6BTkbGJQJVq9Qaddclose
这是一个唯一键,将作为包含您的描述、位置和姓名的对象获取。
W/ClassMapper: No setter/field for -KNRXdDOlA9nV6qxXvOl found on class
com.example.sammie.coreteccontacts.Sacco
这表明您的数据库侦听器定位有误。它正在读取 -KNRWnG6BTkbGJQJVq9Qaddclose
作为 Sacco class 的变量而不是它的对象。
请检查 JSON 文件和 DatabaseReference。很可能应该是这样的:
- UnderChilds <-----(儿童听众)。
- -KNRWnG6BTkbGJQJVq9Qaddclose
- -KNRWnSYnuojkbGJQJVq9Qaddclos
您必须获得对您的节点的引用:
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Your Node Name");
我正在尝试从 firebase 检索数据并使用 firebase-ui 将其显示在我的列表视图中。代码运行良好,但列表视图中没有显示任何内容。这是我从日志中得到的:
W/ClassMapper: No setter/field for -KNRXdDOlA9nV6qxXvOl found on class com.example.sammie.coreteccontacts.Sacco
这是我的 FirebaselistAdapter
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference();
FirebaseListAdapter<Sacco> adapter = new FirebaseListAdapter<Sacco>(getActivity(), Sacco.class, android.R.layout.simple_list_item_1, mDatabaseReference) {
@Override
protected void populateView(View view, Sacco sacco, int i) {
((TextView)view.findViewById(android.R.id.text1)).setText(Sacco.getName());
}
};
contactList.setAdapter(adapter);
这是我的萨科 class:
package com.example.sammie.coreteccontacts;
public class Sacco {
String description;
String location;
static String name;
public Sacco() {
}
public Sacco(String description, String location, String name) {
this.name = name;
this.description = description;
this.location = location;
}
public static String getName() {
return name;
}
public String getDescription() {
return description;
}
public String getLocation() {
return location;
}
}
这是来自 firebase 的数据示例
KNRWnG6BTkbGJQJVq9Qaddclose
description:"test description"
location: "test location"
name: "test name"
您的 class 中没有 setter 方法。
public void setName(String name) {
this.name = name;
}
public void setDescription(String description) {
this.description = description;
}
public void setLocation(String location) {
this.location = location;
}
但是
-KNRWnG6BTkbGJQJVq9Qaddclose
这是一个唯一键,将作为包含您的描述、位置和姓名的对象获取。
W/ClassMapper: No setter/field for -KNRXdDOlA9nV6qxXvOl found on class com.example.sammie.coreteccontacts.Sacco
这表明您的数据库侦听器定位有误。它正在读取 -KNRWnG6BTkbGJQJVq9Qaddclose
作为 Sacco class 的变量而不是它的对象。
请检查 JSON 文件和 DatabaseReference。很可能应该是这样的:
- UnderChilds <-----(儿童听众)。
- -KNRWnG6BTkbGJQJVq9Qaddclose
- -KNRWnSYnuojkbGJQJVq9Qaddclos
您必须获得对您的节点的引用:
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Your Node Name");