我正在尝试使用此查询从 azure 移动服务中检索数据。但是它不起作用,我确信它们是数据库中的数据。
userTable.where().field("id").eq(1).execute(new TableQueryCallback<User>() {
@Override
public void onCompleted(List<User> users, int i, Exception e, ServiceFilterResponse serviceFilterResponse) {
这就是我初始化 MobileServiceClient 的方式。
try
{
mClient = new MobileServiceClient(getString(R.string.azure_site),getString(R.string.azure_key),this);
mClient.setGsonBuilder(new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES));
mClient.registerSerializer(ArrayList.class,new CollectionSerializer<Object>());
}
catch (MalformedURLException e)
{
AppMsg.makeText(this, getString(R.string.service_error), AppMsg.STYLE_ALERT).show();
}
这是我的用户模型。
public class User
{
private int id;
private String facebookId;
private String firstname;
private String lastname;
private ArrayList<Alarm> alarms;
private ArrayList<Moment> moments;
private ArrayList<User> bannedUsers;
private String channel;
public String getRegistrationId() {
return channel;
}
public final void setRegistrationId(String registrationId) {
channel = registrationId;
}
public User()
{
}
public User(int userId,String facebookId,String firstname,String lastname,ArrayList<Alarm> alarms,ArrayList<Moment> moments,ArrayList<User> bannedUsers)
{
//this.moments = moments;
this.alarms = alarms;
this.id = userId;
this.facebookId = facebookId;
this.firstname = firstname;
this.lastname = lastname;
this.bannedUsers = bannedUsers;
}
/**
* Getters and setters
*
*/
public String getFirstname() {
return firstname;
}
public final void setFirstname(String firstname) {
this.firstname = firstname;
}
public int getId() {
return id;
}
public final void setId(int id) {
this.id = id;
}
public String getLastname() {
return lastname;
}
public final void setLastname(String lastname) {
this.lastname = lastname;
}
@Override
public boolean equals(Object o) {
return o instanceof User && ((User) o).id == id;
}
public String getFacebookId() {
return facebookId;
}
public void setFacebookId(String facebookId) {
this.facebookId = facebookId;
}
public ArrayList<Alarm> getAlarms() {
return alarms;
}
public void setAlarms(ArrayList<Alarm> alarms) {
this.alarms= alarms;
}
public ArrayList<Moment> getMoments() {
return moments;
}
public void setHistory(ArrayList<Moment> moments) {
this.moments = moments;
}
public ArrayList<User> getBannedUsers() {
return bannedUsers;
}
public void setBannedUsers(ArrayList<User> bannedUsers) {
this.bannedUsers = bannedUsers;
}
}
数据存在于数据库中。(这是测试数据。)
我真的不确定是什么导致了这个问题。当我在 onComplete 回调中收到数组时,我没有收到错误消息,只是一个空值。
要指出的事情。
- 我正在使用自定义集合序列化器/反序列化器,我确信它可以正常工作,我对其进行了测试。
- 我的安卓手机可以上网。
- 移动客户端正在初始化,因为我尝试从另一个表中检索数据并且它可以工作。
- 我不需要注释,因为我告诉 GSON 自动为我生成它们。