无法保存firebase活动状态 应用程序的主仪表板文件 Dashboard.java 包com.abc.farmersconsult; 导入android.content.Intent; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.ArrayAdapter; 导入android.widget.EditText; 导入android.widget.Spinner; 导入com.google.firebase.auth.FirebaseAuth; 导入com.google.firebase.auth.FirebaseUser; 导入com.google.firebase.database.DataSnapshot; 导入com.google.firebase.database.DatabaseError; 导入com.google.firebase.database.DatabaseReference; 导入com.google.firebase.database.FirebaseDatabase; 导入com.google.firebase.database.ValueEventListener; 公共类注册活动扩展了AppCompatActivity{ 私人编辑文本; 私人纺纱机; FirebaseAuth mAuth; 数据库引用userRef; FirebaseAuth.AuthStateListener mAuthStateListener; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u寄存器); 微调器=findViewById(R.id.spinner\u国家/地区); spinner.setAdapter(新阵列适配器)(此, android.R.layout.simple\u微调器\u下拉菜单\u项, CountryData.countrynames); editText=findViewById(R.id.Phone); findviewbyd(R.id.Continue).setOnClickListener(newview.OnClickListener()) { @凌驾 公共void onClick(视图v){ 字符串代码= CountryData.countryAreaCodes[spinner.getSelectedItemPosition()]; 字符串编号=editText.getText().toString().trim(); if(number.isEmpty()| number.length()
此文件是配置文件设置活动无法保存firebase活动状态 应用程序的主仪表板文件 Dashboard.java 包com.abc.farmersconsult; 导入android.content.Intent; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.ArrayAdapter; 导入android.widget.EditText; 导入android.widget.Spinner; 导入com.google.firebase.auth.FirebaseAuth; 导入com.google.firebase.auth.FirebaseUser; 导入com.google.firebase.database.DataSnapshot; 导入com.google.firebase.database.DatabaseError; 导入com.google.firebase.database.DatabaseReference; 导入com.google.firebase.database.FirebaseDatabase; 导入com.google.firebase.database.ValueEventListener; 公共类注册活动扩展了AppCompatActivity{ 私人编辑文本; 私人纺纱机; FirebaseAuth mAuth; 数据库引用userRef; FirebaseAuth.AuthStateListener mAuthStateListener; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u寄存器); 微调器=findViewById(R.id.spinner\u国家/地区); spinner.setAdapter(新阵列适配器)(此, android.R.layout.simple\u微调器\u下拉菜单\u项, CountryData.countrynames); editText=findViewById(R.id.Phone); findviewbyd(R.id.Continue).setOnClickListener(newview.OnClickListener()) { @凌驾 公共void onClick(视图v){ 字符串代码= CountryData.countryAreaCodes[spinner.getSelectedItemPosition()]; 字符串编号=editText.getText().toString().trim(); if(number.isEmpty()| number.length(),java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,此文件是配置文件设置活动 The Main Dashboard File of the App Dashboard.java package com.abc.farmersconsult; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.
The Main Dashboard File of the App
Dashboard.java
package com.abc.farmersconsult;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class RegisterActivity extends AppCompatActivity {
private EditText editText;
private Spinner spinner;
FirebaseAuth mAuth;
DatabaseReference userRef;
FirebaseAuth.AuthStateListener mAuthStateListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
spinner = findViewById(R.id.spinner_countries);
spinner.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item,
CountryData.countrynames));
editText = findViewById(R.id.Phone);
findViewById(R.id.Continue).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
String code =
CountryData.countryAreaCodes[spinner.getSelectedItemPosition()];
String number = editText.getText().toString().trim();
if (number.isEmpty() || number.length() < 10) {
editText.setError("Valid number is required");
editText.requestFocus();
return;
}
String phoneNumber = "+" + code + number;
Intent intent = new Intent(RegisterActivity.this,
VerifyPhone.class);
intent.putExtra("phonenumbers", phoneNumber);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseUser currentUser=FirebaseAuth.getInstance().getCurrentUser();
UpdateUI(currentUser);
/*
if (FirebaseAuth.getInstance().getCurrentUser() != null) {
Intent intent = new Intent(this, Dashboard.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} */
}
private void UpdateUI(FirebaseUser currentUser) {
if(currentUser!=null){
Intent intent=new Intent(RegisterActivity.this, Dashboard.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
}
SetupProfile.java
公共类SetupProfile扩展了AppCompatActivity{
编辑文本编辑文本;
按钮;
私人消防队;
数据库参考mUserRef;
字符串CurrentUserID;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u setup\u profile);
mAuth=FirebaseAuth.getInstance();
CurrentUserID=mAuth.getCurrentUser().getUid();
mUserRef=FirebaseDatabase.getInstance().getReference()。
child(“用户”).child(当前用户ID);
按钮=(按钮)findViewById(R.id.save);
editText=(editText)findViewById(R.id.editText);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
储蓄账户();
}
});
}
私有void saveAccount(){
字符串username=editText.getText().toString().trim();
if(username.isEmpty()){
Toast.makeText(这是“输入有效名称”,Toast.LENGTH_LONG.show();
}
否则{
HashMap userMap=新的HashMap();
userMap.put(“用户名”,username);
mUserRef.updateChildren(userMap).addOnCompleteListener(新
OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(SetupProfile.this)帐户
创建“,Toast.LENGTH_LONG).show();
sendHome();
}
}
});
}
}
私有void sendHome(){
意图=新意图(SetupProfile.this、Dashboard.class);
intent.addFlags(intent.FLAG\u活动\u新任务|
意图。标记活动(清除任务);
星触觉(意向);
完成();
}
}
此文件包含OTP文件的验证
VerifyPhone.java
公共类VerifyPhone扩展AppCompative活动{
私有字符串验证ID;
FirebaseAuth mAuth;
FirebaseAuth.AuthStateListener mAuthStateListener;
私人编辑文本;
数据库引用userRef;
私人ProgressBar ProgressBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u verify\u phone);
mAuth=FirebaseAuth.getInstance();
progressBar=findViewById(R.id.progressBar);
editText=findViewById(R.id.verify\u otp);
字符串phonenumber=getIntent().getStringExtra(“电话号码”);
sendVerificationCode(电话号码);
findviewbyd(R.id.Sign).setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
字符串代码=editText.getText().toString().trim();
if(code.isEmpty()| code.length()<6){
setError(“输入代码…”);
editText.requestFocus();
返回;
}
验证码(code);
}
});
}
专用无效验证码(字符串码){
PhoneAuthCredential credential=PhoneAuthProvider.getCredential(验证ID,代码);
使用凭证(凭证)登录;
}
私有无效检查存在(){
}
私有void SendUserToSetup(){
意向意向=新意向(VerifyPho)
SetupProfile.java
public class SetupProfile extends AppCompatActivity {
EditText editText;
Button button;
private FirebaseAuth mAuth;
DatabaseReference mUserRef;
String CurrentUserID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup_profile);
mAuth=FirebaseAuth.getInstance();
CurrentUserID=mAuth.getCurrentUser().getUid();
mUserRef=FirebaseDatabase.getInstance().getReference().
child("Users").child(CurrentUserID);
button=(Button)findViewById(R.id.save);
editText=(EditText)findViewById(R.id.editText);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveAccount();
}
});
}
private void saveAccount() {
String username=editText.getText().toString().trim();
if(username.isEmpty()){
Toast.makeText(this,"Enter valid name", Toast.LENGTH_LONG).show();
}
else{
HashMap userMap= new HashMap();
userMap.put("username",username);
mUserRef.updateChildren(userMap).addOnCompleteListener(new
OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if(task.isSuccessful()){
Toast.makeText(SetupProfile.this,"Account
create",Toast.LENGTH_LONG).show();
sendHome();
}
}
});
}
}
private void sendHome() {
Intent intent=new Intent(SetupProfile.this, Dashboard.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
}
}
This File Contains Verification of the OTP file
VerifyPhone.java
public class VerifyPhone extends AppCompatActivity {
private String verificationId;
FirebaseAuth mAuth;
FirebaseAuth.AuthStateListener mAuthStateListener;
private EditText editText;
DatabaseReference userRef;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_verify_phone);
mAuth = FirebaseAuth.getInstance();
progressBar = findViewById(R.id.progressBar);
editText = findViewById(R.id.verify_otp);
String phonenumber = getIntent().getStringExtra("phonenumbers");
sendVerificationCode(phonenumber);
findViewById(R.id.Sign).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String code = editText.getText().toString().trim();
if (code.isEmpty() || code.length() < 6) {
editText.setError("Enter code...");
editText.requestFocus();
return;
}
verifyCode(code);
}
});
}
private void verifyCode(String code) {
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
signInWithCredential(credential);
}
private void checkExistence() {
}
private void SendUserToSetup() {
Intent intent=new Intent(VerifyPhone.this, SetupProfile.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
private void signInWithCredential(PhoneAuthCredential credential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
final String current_userid=mAuth.getCurrentUser().getUid();
userRef= FirebaseDatabase.getInstance().getReference().child("Users");
userRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(!dataSnapshot.hasChild(current_userid)){
SendUserToSetup();
}
else {
Intent intent = new Intent(VerifyPhone.this, Dashboard.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
} else {
Toast.makeText(VerifyPhone.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
@Override
protected void onStart() {
super.onStart();
}
private void sendVerificationCode(String number) {
progressBar.setVisibility(View.VISIBLE);
PhoneAuthProvider.getInstance().verifyPhoneNumber(
number,
60,
TimeUnit.SECONDS,
TaskExecutors.MAIN_THREAD,
mCallBack
);
}
private PhoneAuthProvider.OnVerificationStateChangedCallbacks
mCallBack = new
PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken
forceResendingToken) {
super.onCodeSent(s, forceResendingToken);
verificationId = s;
}
@Override
public void onVerificationCompleted(PhoneAuthCredential credential) {
String code = credential.getSmsCode();
if (code != null) {
editText.setText(code);
verifyCode(code);
}
signInWithCredential(credential);
}
@Override
public void onVerificationFailed(FirebaseException e) {
Toast.makeText(VerifyPhone.this, e.getMessage(),
Toast.LENGTH_LONG).show();
}
};
}
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class RegisterActivity extends AppCompatActivity {
private EditText editText;
private Spinner spinner;
FirebaseAuth mAuth;
DatabaseReference userRef;
FirebaseAuth.AuthStateListener mAuthStateListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
spinner = findViewById(R.id.spinner_countries);
spinner.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item,
CountryData.countrynames));
editText = findViewById(R.id.Phone);
findViewById(R.id.Continue).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
String code =
CountryData.countryAreaCodes[spinner.getSelectedItemPosition()];
String number = editText.getText().toString().trim();
if (number.isEmpty() || number.length() < 10) {
editText.setError("Valid number is required");
editText.requestFocus();
return;
}
String phoneNumber = "+" + code + number;
Intent intent = new Intent(RegisterActivity.this,
VerifyPhone.class);
intent.putExtra("phonenumbers", phoneNumber);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseUser currentUser=FirebaseAuth.getInstance().getCurrentUser();
UpdateUI(currentUser);
/*
if (FirebaseAuth.getInstance().getCurrentUser() != null) {
Intent intent = new Intent(this, Dashboard.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} */
}
private void UpdateUI(FirebaseUser currentUser) {
if(currentUser!=null){
Intent intent=new Intent(RegisterActivity.this, Dashboard.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|
Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
}
}