你能从解析查询中提取答案吗?
Can you pull an answer out of a parse query?
我正在尝试制作一个应用程序,但我 运行 遇到无法从查询中提取信息的问题。
我的代码看起来像这样:
// This is to validate there is an email
private boolean isEmail(String email) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", email);
query.getFirstInBackground(new GetCallback<ParseUser>() {
@Override
public void done(ParseUser object, ParseException e) {
if (object == null) {
Log.d("Login User", "The getFirst request failed. Probably because no associated account found");
return false
}
else {
return true
}
}
});
}
但是正如您所看到的那样,具有“return”语句的地方会因为调用它们的位置而吐出错误。
有什么方法可以执行 return 语句吗?
您可以使用 query.getFirst
而不是 query.getFirstInBackground
。请注意,它会阻塞主线程。您可能希望重新设计您的函数以接收一个回调函数,该回调函数将随结果一起回调。如果你真的想保留签名,那就是要走的路:
private boolean isEmail(String email) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", email);
try {
ParseUser object = query.getFirst();
return true;
} catch (ParseException e) {
return false;
}
}
另请注意,使用此方法您将只能检索当前用户,因为 return 其他用户需要主密钥。
我正在尝试制作一个应用程序,但我 运行 遇到无法从查询中提取信息的问题。
我的代码看起来像这样:
// This is to validate there is an email
private boolean isEmail(String email) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", email);
query.getFirstInBackground(new GetCallback<ParseUser>() {
@Override
public void done(ParseUser object, ParseException e) {
if (object == null) {
Log.d("Login User", "The getFirst request failed. Probably because no associated account found");
return false
}
else {
return true
}
}
});
}
但是正如您所看到的那样,具有“return”语句的地方会因为调用它们的位置而吐出错误。
有什么方法可以执行 return 语句吗?
您可以使用 query.getFirst
而不是 query.getFirstInBackground
。请注意,它会阻塞主线程。您可能希望重新设计您的函数以接收一个回调函数,该回调函数将随结果一起回调。如果你真的想保留签名,那就是要走的路:
private boolean isEmail(String email) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", email);
try {
ParseUser object = query.getFirst();
return true;
} catch (ParseException e) {
return false;
}
}
另请注意,使用此方法您将只能检索当前用户,因为 return 其他用户需要主密钥。