Android
Users
Имплементация Parse Server: регистрация и логин в Android
17 мин
учебник по входу и регистрации пользователей введение в этом разделе мы рассмотрим, как создать приложение с простой регистрацией пользователей с использованием основных функций parse server через back4app этот учебник использует базовое приложение, созданное в android studio 4 1 1 с buildtoolsversion=30 0 2 buildtoolsversion=30 0 2 , compile sdk version = 30 0 2 compile sdk version = 30 0 2 и targetsdkversion 30 targetsdkversion 30 в любое время вы можете получить доступ к полному проекту android, созданному с помощью этого учебника, в наших репозиториях на github репозиторий примера на kotlin репозиторий примера на java цель мы научимся, как войти в систему и зарегистрироваться с использованием parse вот предварительный просмотр того, что мы собираемся достичь предварительные условия чтобы завершить этот учебник, нам нужно android studio приложение, созданное на back4app примечание следуйте учебнику по созданию нового parse app чтобы узнать, как создать parse app на back4app android приложение, подключенное к back4app примечание следуйте учебнику по установке parse sdk чтобы создать проект android studio, подключенный к back4app устройство (или виртуальное устройство ) с android 4 1 (jelly bean) или новее 1 импорт библиотеки на этом этапе мы импортируем библиотеки, которые будем использовать в нашем проекте мы добавим следующие классы parse в наши активности 2\ мы будем часто использовать лямбда функции в нашем проекте, поэтому нам нужно добавить java 1 8 в наш проект через build gradle(module\ app) 2 регистрация регистрация в основном создает новый объект parse user в классе user, который отображается как “пользователь” в вашем приложении панель управления панель управления нам нужно установить как минимум два свойства при создании нового пользователя => parseuser setusername() parseuser setusername() и parseuser setpassword() parseuser setpassword() метод, используемый для сохранения нового пользователя на android, это parseuser signupinbackground() parseuser signupinbackground() , который может быть вместе с функцией обратного вызова примечание объекты этого специального класса не сохраняются на панели управления панели управления с помощью метода parseobject save() parseobject save() чтобы сделать signupactivity signupactivity работоспособным, выполните следующие шаги импортируйте в ваш signupactivity signupactivity , в дополнение к зависимостям, импортированным в шаг 1 }]},{ 2 чтобы реализовать регистрацию пользователя, просто используйте следующий код в методе oncreate() oncreate() 1 parseuser user = new parseuser(); 2 // установите имя пользователя и пароль, которые можно получить через формы 3 user setusername( "<ваше имя пользователя здесь>"); 4 user setpassword( "<ваш пароль здесь>"); 5 user signupinbackground(new signupcallback() { 6 @override 7 public void done(parseexception e) { 8 if (e == null) { 9 showalert("успешная регистрация!", "добро пожаловать" + "<ваше имя пользователя здесь>" +"!"); 10 } else { 11 parseuser logout(); 12 toast maketext(signupactivity this, e getmessage(), toast length long) show(); 13 } 14 } 15 });1 val user = parseuser(); 2 // установите имя пользователя и пароль, которые можно получить через формы 3 user setusername("<ваше имя пользователя здесь>"); 4 user setpassword("<ваш пароль здесь>"); 5 user signupinbackground(signupcallback() { 6 if (it == null) { 7 showalert("успешная регистрация!", "добро пожаловать" + "<ваше имя пользователя здесь>" + "!"); 8 } else { 9 parseuser logout(); 10 toast maketext(this, it message, toast length long) show(); 11 } 12 }); в примере проекта этот код помещен внутри зарегистрироваться зарегистрироваться , обратного вызова кнопки также имя пользователя и пароль захватываются с помощью редактировать тексты 3\ интересно добавить дополнительный метод для отображения диалогов предупреждений и сделать процесс более профессиональным метод ниже делает это 1 private void showalert(string title,string message){ 2 alertdialog builder builder = new alertdialog builder(signupactivity this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok", new dialoginterface onclicklistener() { 6 @override 7 public void onclick(dialoginterface dialog, int which) { 8 dialog cancel(); 9 // don't forget to change the line below with the names of your activities 10 intent intent = new intent(signupactivity this, logoutactivity class); 11 intent addflags(intent flag activity clear task | intent flag activity new task); 12 startactivity(intent); 13 } 14 }); 15 alertdialog ok = builder create(); 16 ok show(); 17 }1 private fun showalert(title string, message string) { 2 val builder = alertdialog builder(this) 3 settitle(title) 4 setmessage(message) 5 setpositivebutton("ok") { dialog, which > 6 dialog cancel() 7 // don't forget to change the line below with the names of your activities 8 val intent = intent(this, logoutactivity class java) 9 intent addflags(intent flag activity clear task or intent flag activity new task) 10 startactivity(intent) 11 } 12 val ok = builder create() 13 ok show() 14 } 3 вход в систему вход в систему создает объект session, который указывает на вошедшего пользователя если вход в систему успешен, parseuser getcurrentuser() parseuser getcurrentuser() возвращает объект user и объект session, который создан в панели управления панели управления в противном случае, если целевое имя пользователя не существует или пароль неверен, он возвращает null метод, используемый для выполнения действия входа в систему, это parseuser logininbackground() parseuser logininbackground() , который требует столько же аргументов, сколько строк имени пользователя и пароля, и может вызывать функцию обратного вызова примечание после регистрации вход в систему выполняется автоматически чтобы сделать loginactivity loginactivity работоспособным, выполните следующие шаги импортируйте в ваш loginactivity loginactivity , в дополнение к зависимостям, импортированным в шаг 1 2\ чтобы реализовать функцию входа пользователя, просто используйте код 1 private void login(string username, string password) { 2 progressdialog show(); 3 parseuser logininbackground(username, password, (parseuser, e) > { 4 progressdialog dismiss(); 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !"); 7 } else { 8 parseuser logout(); 9 toast maketext(loginactivity this, e getmessage(), toast length long) show(); 10 } 11 }); 12 }1 fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, parseexception parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !") 7 } else { 8 parseuser logout() 9 if (parseexception != null) { 10 toast maketext(this, parseexception message, toast length long) show() 11 } 12 } 13 } 14 } в примере проекта этот код помещен внутри кнопки входа кнопки входа также имя пользователя и пароль захватываются с помощью edit texts метод showalert showalert такой же, как вы добавили в signupactivity signupactivity , не забудьте изменить его intent intent аргументы 4 выйти выход удаляет активный объект сессии для вошедшего пользователя метод, используемый для выхода, это parseuser logoutinbackground() parseuser logoutinbackground() чтобы реализовать выход пользователя, просто используйте код ниже в logoutactivity logoutactivity 1 parseuser logoutinbackground(e > { 2 progressdialog dismiss(); 3 if (e == null) 4 showalert("so, you're going ", "ok bye bye then"); 5 });1 fun login(username string, password string) { 2 progressdialog? show() 3 parseuser logininbackground(username,password) { parseuser parseuser?, parseexception parseexception? > 4 progressdialog? dismiss() 5 if (parseuser != null) { 6 showalert("successful login", "welcome back " + username + " !") 7 } else { 8 parseuser logout() 9 if (parseexception != null) { 10 toast maketext(this, parseexception message, toast length long) show() 11 } 12 } 13 } 14 } в примере проекта этот код помещен внутри кнопки выхода кнопки выхода обратного вызова метод showalert showalert такой же, как вы добавили в loginactivity loginactivity и signupactivity signupactivity , не забудьте изменить его intent intent аргументы 5 протестируйте ваше приложение запустите ваше приложение и создайте несколько пользователей, также попробуйте войти снова после их регистрации войдите на сайт back4app найдите ваше приложение и нажмите на панель управления панель управления > ядро ядро > браузер браузер > пользователь пользователь на этом этапе вы должны увидеть ваших пользователей, как показано ниже примечание используя коды, отображенные выше, каждый раз, когда вы входите с пользователем, сессия сессия открывается в вашей панели управления панели управления , но когда пользователь выходит, эта конкретная сессия сессия заканчивается также, всякий раз, когда происходит неудачная попытка входа или регистрации, сессия сессия открытая на сервере parse панели управления панели управления удаляется готово! поздравляем! теперь вы можете входить, регистрироваться или выходить из вашего приложения, используя основные функции сервера parse через back4app!