比如,我要在数据库中先查询是否已有手机号,如果没有的话,才可以注册
那这代码要怎么写呢?最好是Android Studio的,本人小白,求大神们指点下
-
创建时间
21年3月31日
-
最后回复
21年4月1日
- 5
回复
- 52
浏览
- 2
用户
- 3
链接
比如,我要在数据库中先查询是否已有手机号,如果没有的话,才可以注册
那这代码要怎么写呢?最好是Android Studio的,本人小白,求大神们指点下
要在数据库中先查询是否已有手机号,如果没有的话,才可以注册
不太确定这里的「数据库」具体指什么。
AVUser 的手机号(mobilePhoneNumber)内置唯一索引保证其唯一性,直接调用注册接口就行,如果手机号已存在,云端会报错,客户端收到报错后给用户显示一个提示(「手机号已存在,请直接登录」之类)就行。详见文档。一般数据库只要判断查询结果是不是空就行了,可LeanCloud中不知道如何判断结果是否为空。
如果查不到结果,结果会是一个空数组(基于 SDK 查询)或是空对象(直接调用 REST API 查询)。以使用 JavaScript SDK 为例:
studentQuery.find().then((students) => {
// 如果查不到结果,students 会是一个空数组
});
或者用 count 也可以(结果是否为零)。
以上是关于查询结果判断的说明。回到最初的需求,也可以在自建的数据表(控制台 > 存储 > 结构化数据 > Class 名 > 性能索引)那里给 phone 字段建个唯一索引。
AVQuery query = new AVQuery<>("Student");
query.whereEqualTo("lastName", "Smith");
query.findInBackground().subscribe(new Observer>() {
public void onSubscribe(Disposable disposable) {}
public void onNext(List students) {
// students 是包含满足条件的 Student 对象的数组
}
public void onError(Throwable throwable) {}
public void onComplete() {}
});
这是Android Studio中基本查询的代码,不知道是不是我测试的方法有误,之邀查询不到,是不触发其中的onNext方法的,也就无法用判断是students是不是空数组来判断查询结果是否为空。。。