Xamarin.Android and Parse
本文关键字:Parse and Android Xamarin | 更新日期: 2023-09-27 17:56:29
我正在用C#和Xamarin编写一个应用程序。我目前陷入了当用户单击注册按钮时,我的应用程序会在解析数据库中检查具有相同电话号码的用户。理想情况下,如果应用程序找到应用程序,则会干杯"无法注册"。如果找不到用户,则会注册用户。下面是我使用的代码。
try {
var person = await(from userp in ParseUser.Query where userp.Get<string>("Phone")==phone.Text.ToString() select userp).FindAsync();
if(person!=null){Toast.MakeText(this,"A user with same mobile number already exist and can't signup",ToastLength.Long).Show();}
else{
signupprogress = new ProgressDialog (this);
signupprogress.SetTitle ("Please Wait");
signupprogress.SetMessage ("Signing you up!!");
signupprogress.SetCancelable (true);
signupprogress.SetProgressStyle (ProgressDialogStyle.Spinner);
signupprogress.Show ();
ParseUser user = new ParseUser ();
user ["Name"] = name.Text.ToString ();
user.Username = email.Text.ToString ();
user.Email = email.Text.ToString ();
user.Password = password.Text;
user ["Address"] = Address.Text.ToString ();
user ["Phone"] = phone.Text.ToString ();
await user.SignUpAsync ();
signupprogress.Dismiss ();
var inte = new Intent (this, typeof(LogIn));
StartActivity (inte);
Toast.MakeText (this, "Signed Up successfully.Please Login", ToastLength.Short).Show ();
}
} catch (Exception ep) {
Toast.MakeText (this, "Some erroroccured "+ ep.Message, ToastLength.Long).Show ();
}
我面临的问题是:
- 我可以多次使用相同的号码注册。 如果有人反对不为空,我认为如果我的应用程序找到人,应该如此使用相同的电话号码,应用应显示 Toast。
- 如果我使用数据库中没有的其他号码,那么我将无法注册。
请帮忙。提前谢谢。
FindAsync
永远不会返回null
。它总是返回一个Task<IEnumerable<T>>
。而这项任务的结果也永远不会null
。如果它没有找到任何内容,它将返回一个空列表。
因为您正在使用await
所以您实际上不必处理任务。你只需要检查它是否返回了任何对象。
所以你想做的是这样的:
var persons = await (from userp in ParseUser.Query
where userp.Get<string>("Phone")==phone.Text.ToString()
select userp).FindAsync();
if(!persons.Any())
{
Toast.MakeText(this,
"A user with same mobile number already exist and can't signup",
ToastLength.Long)
.Show();
}