用户注册与登录功能的实现
来源:互联网 发布:golang udp server 编辑:程序博客网 时间:2024/06/06 14:18
参考文档:https://firebase.google.com/docs/auth/android/password-auth
集成firebase中的用户管理功能
在上一篇文章中,集成的AdMob SDK与Firebase版本不同,所以导致了在调用firebase api时编译出错,需要手动将版本号调整(这里用的是10.2.1)
在项目上右键,点击”Open Module Settings-Ads”,取消勾选
然后打开app级的build.gradle,加入
compile 'com.google.firebase:firebase-auth:10.2.1'compile 'com.google.android.gms:play-services-ads:10.2.1'
然后点击右上角的“Sync now”,等待完成
编写UI
涉及这个功能的是三个Activity
LoginActivity 用户登录
RegActivity 用户注册
UserCenterActivity 用户中心
首先是布局文件
拖放控件,重新修改ID,文本
再在string.xml中加入相应的资源
效果如图
注册界面只需复制粘贴,然后用Ctrl+F,将login替换为reg
最后在按钮控件上添加onClick响应函数
接着新建三个继承自Activity的java类,添加成员变量,并写入相应的初始化代码
private EditText et_email,et_password; private FirebaseAuth mAuth; ... private void init(){ et_email= (EditText) findViewById(R.id.login_et_email); et_password= (EditText) findViewById(R.id.login_et_password); mAuth = FirebaseAuth.getInstance(); }
再实现onClic响应函数
public void login(View v){ ... } public void reg(View v){ ... }
布局也就完成了
接着开始写实现代码
由于对话框会被多次调用,所以这里定义了一个UIUtils类
package com.greenapp.note.utils;import android.app.AlertDialog;import android.content.Context;import android.widget.Toast;import com.greenapp.note.R;/** * Created by Administrator on 2017/7/31 0031. */public class UIUtils { public static AlertDialog createDialog(String title, String message, Context context){ AlertDialog.Builder builder=new AlertDialog.Builder(context); builder.setTitle(title); builder.setMessage(message); AlertDialog dlg = builder.create(); dlg.show(); return dlg; } public static AlertDialog createDialog(String message, Context context){ return createDialog(context.getString(R.string.wait),message,context); } public static void makeToast(String text,Context context){ Toast.makeText(context,text,Toast.LENGTH_SHORT); }}
在按钮的相应函数中调用mAuth的createUserWithEmailAndPassword函数,并添加事件完成的监听器
final AlertDialog dlg= UIUtils.createDialog(getString(R.string.wait),getString(R.string.reg_handling),this); mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if(dlg!=null){ dlg.dismiss(); } if(task.isSuccessful()){ Toast.makeText(RegActivity.this,getString(R.string.reg_succeed),Toast.LENGTH_SHORT).show(); startActivity(new Intent(RegActivity.this,UserCenterActivity.class)); RegActivity.this.finish(); }else{ Toast.makeText(RegActivity.this,getString(R.string.reg_failed),Toast.LENGTH_SHORT).show(); } } });
登录那部分也就依葫芦画瓢了,调用signInWithEmailAndPassword就OK了
最后在UserCenterActivity中添加显示登录用户的email退出功能
public void logout(View v){ final AlertDialog dlg=UIUtils.createDialog(getString(R.string.center_logout_handling),UserCenterActivity.this); mAuth.addAuthStateListener(new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { if(firebaseAuth.getCurrentUser()==null){ dlg.dismiss(); Toast.makeText(UserCenterActivity.this,getString(R.string.logout_succeed),Toast.LENGTH_SHORT).show(); UserCenterActivity.this.finish(); mAuth.removeAuthStateListener(this); } } }); mAuth.signOut(); }
最后运行测试
在Firebase Console中也可以看见刚才注册的用户
- 用户注册与登录功能的实现
- 实现PHP用户的注册与登录
- 实现PHP用户的注册与登录 .
- 使用PHP实现用户登录和注册的功能
- PHP实现用户登录和注册的功能
- PHP实现用户登录和注册的功能
- 使用PHP实现用户登录和注册的功能
- 用PHP实现用户登录和注册的功能
- 实现用户的注册功能
- 用纯jsp实现用户的登录、注册与退出
- java 与数据库连接 实现用户的注册和登录
- java 与数据库连接 实现用户的注册和登录
- yii2项目实战-用户管理之登录与注册功能实现
- 用户注册功能实现 与base概念
- 用户登录和注册功能
- 第4章 实现用户登录和注册功能
- struts2框架+mysql,实现用户登录、注册功能
- week10-实现网站的登录、注册功能
- 算法---从一个数组(或者集合中)找出和为某个值的下标
- jinja2.exceptions.UndefinedError: 'form' is undefined
- Uncaught TypeError: window.showModalDialog is not a function chrome 谷歌浏览器
- 图像搜索项目整理笔记
- redis采用序列化方案存对象
- 用户注册与登录功能的实现
- android弱网下优化
- RESTful
- go 发送邮件
- 二十三种设计模式之装饰者模式
- MenuItemImage的使用
- rabbitmq 2
- Tip
- POJ-3985:Knight's Problem(特殊的bfs剪枝以及hash)