私はAndroid開発分野の新人です。スケッチウェアと呼ばれるアプリでfirebaseを使用して電話番号検証システムを作成しましたが、提供された番号を受け取りました。初めて、そしてもう一度試すたびに、[firebaseで署名されたアカウントを削除しました]が得られません。しかし楽しいのは、デバイスを再起動した後に再び OTP を取得していることです。なぜこの種のエラーが発生するのか理解できません。
私は以下の私のプロジェクトを与えました -
私は2つの activity.xml ファイルを持っています
main.xml と home.xml
########################## MainActivity.java -
package com.gol.groundoflegends;
import androidx.appcompat.app.AppCompatActivity;
import androidx.annotation.*;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import com.google.android.material.appbar.AppBarLayout;
import android.app.*;
import android.os.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
import android.content.*;
import android.content.res.*;
import android.graphics.*;
import android.graphics.drawable.*;
import android.media.*;
import android.net.*;
import android.text.*;
import android.text.style.*;
import android.util.*;
import android.webkit.*;
import android.animation.*;
import android.view.animation.*;
import java.util.*;
import java.util.regex.*;
import java.text.*;
import org.json.*;
import java.util.HashMap;
import android.widget.LinearLayout;
import android.widget.EditText;
import android.widget.Button;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.FirebaseAuth;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import android.content.Intent;
import android.net.Uri;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.GenericTypeIndicator;
import com.google.firebase.database.ChildEventListener;
import android.view.View;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.DialogFragment;
public class MainActivity extends AppCompatActivity {
private FirebaseDatabase _firebase = FirebaseDatabase.getInstance();
private Toolbar _toolbar;
private AppBarLayout _app_bar;
private CoordinatorLayout _coordinator;
private String phone = "";
private String code = "";
private String codeSent = "";
private HashMap<String, Object> map1 = new HashMap<>();
private LinearLayout linear1;
private EditText edittext2;
private EditText edittext1;
private Button button1;
private Button button2;
private FirebaseAuth fauth;
private OnCompleteListener<Void> fauth_updateEmailListener;
private OnCompleteListener<Void> fauth_updatePasswordListener;
private OnCompleteListener<Void> fauth_emailVerificationSentListener;
private OnCompleteListener<Void> fauth_deleteUserListener;
private OnCompleteListener<Void> fauth_updateProfileListener;
private OnCompleteListener<AuthResult> fauth_phoneAuthListener;
private OnCompleteListener<AuthResult> fauth_googleSignInListener;
private OnCompleteListener<AuthResult> _fauth_create_user_listener;
private OnCompleteListener<AuthResult> _fauth_sign_in_listener;
private OnCompleteListener<Void> _fauth_reset_password_listener;
private Intent intent = new Intent();
private DatabaseReference fbd = _firebase.getReference("test");
private ChildEventListener _fbd_child_listener;
@Override
protected void onCreate(Bundle _savedInstanceState) {
super.onCreate(_savedInstanceState);
setContentView(R.layout.main);
initialize(_savedInstanceState);
com.google.firebase.FirebaseApp.initializeApp(this);
initializeLogic();
}
private void initialize(Bundle _savedInstanceState) {
_app_bar = (AppBarLayout) findViewById(R.id._app_bar);
_coordinator = (CoordinatorLayout) findViewById(R.id._coordinator);
_toolbar = (Toolbar) findViewById(R.id._toolbar);
setSupportActionBar(_toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
_toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View _v) {
onBackPressed();
}
});
linear1 = (LinearLayout) findViewById(R.id.linear1);
edittext2 = (EditText) findViewById(R.id.edittext2);
edittext1 = (EditText) findViewById(R.id.edittext1);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
fauth = FirebaseAuth.getInstance();
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View _view) {
if (edittext1.getText().toString().equals("")) {
SketchwareUtil.showMessage(getApplicationContext(), "please enter your phone number!");
}
else {
edittext1.setVisibility(View.GONE);
button1.setVisibility(View.GONE);
edittext2.setVisibility(View.VISIBLE);
button2.setVisibility(View.VISIBLE);
_sendotp();
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View _view) {
try {
if (edittext2.getText().toString().equals("")) {
SketchwareUtil.showMessage(getApplicationContext(), "Please enter your otp!");
}
else {
_verify();
}
} catch(Exception e) {
SketchwareUtil.showMessage(getApplicationContext(), "You entered a wrong otp!");
edittext2.setText("");
}
}
});
_fbd_child_listener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot _param1, String _param2) {
GenericTypeIndicator<HashMap<String, Object>> _ind = new GenericTypeIndicator<HashMap<String, Object>>() {};
final String _childKey = _param1.getKey();
final HashMap<String, Object> _childValue = _param1.getValue(_ind);
}
@Override
public void onChildChanged(DataSnapshot _param1, String _param2) {
GenericTypeIndicator<HashMap<String, Object>> _ind = new GenericTypeIndicator<HashMap<String, Object>>() {};
final String _childKey = _param1.getKey();
final HashMap<String, Object> _childValue = _param1.getValue(_ind);
}
@Override
public void onChildMoved(DataSnapshot _param1, String _param2) {
}
@Override
public void onChildRemoved(DataSnapshot _param1) {
GenericTypeIndicator<HashMap<String, Object>> _ind = new GenericTypeIndicator<HashMap<String, Object>>() {};
final String _childKey = _param1.getKey();
final HashMap<String, Object> _childValue = _param1.getValue(_ind);
}
@Override
public void onCancelled(DatabaseError _param1) {
final int _errorCode = _param1.getCode();
final String _errorMessage = _param1.getMessage();
}
};
fbd.addChildEventListener(_fbd_child_listener);
fauth_updateEmailListener = new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
}
};
fauth_updatePasswordListener = new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
}
};
fauth_emailVerificationSentListener = new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
}
};
fauth_deleteUserListener = new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
}
};
fauth_phoneAuthListener = new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> task){
final boolean _success = task.isSuccessful();
final String _errorMessage = task.getException() != null ? task.getException().getMessage() : "";
intent.setClass(getApplicationContext(), HomeActivity.class);
startActivity(intent);
finish();
}
};
fauth_updateProfileListener = new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
}
};
fauth_googleSignInListener = new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> task){
final boolean _success = task.isSuccessful();
final String _errorMessage = task.getException() != null ? task.getException().getMessage() : "";
}
};
_fauth_create_user_listener = new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
}
};
_fauth_sign_in_listener = new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> _param1) {
final boolean _success = _param1.isSuccessful();
final String _errorMessage = _param1.getException() != null ? _param1.getException().getMessage() : "";
intent.setClass(getApplicationContext(), HomeActivity.class);
startActivity(intent);
finish();
}
};
_fauth_reset_password_listener = new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> _param1) {
final boolean _success = _param1.isSuccessful();
}
};
}
private void initializeLogic() {
if ((FirebaseAuth.getInstance().getCurrentUser() != null)) {
intent.setClass(getApplicationContext(), HomeActivity.class);
startActivity(intent);
finish();
}
else {
edittext1.setVisibility(View.VISIBLE);
button1.setVisibility(View.VISIBLE);
edittext2.setVisibility(View.GONE);
button2.setVisibility(View.GONE);
}
}
@Override
protected void onActivityResult(int _requestCode, int _resultCode, Intent _data) {
super.onActivityResult(_requestCode, _resultCode, _data);
switch (_requestCode) {
default:
break;
}
}
public void _sendotp () {
phone = edittext1.getText().toString();
com.google.firebase.auth.PhoneAuthProvider.getInstance().verifyPhoneNumber(phone, 60, java.util.concurrent.TimeUnit.SECONDS, this, mCallbacks);
}
com.google.firebase.auth.PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new com.google.firebase.auth.PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(com.google.firebase.auth.PhoneAuthCredential phoneAuthCredential) {
showMessage("Code has been sent to your Mobile !");
}
@Override
public void onVerificationFailed(com.google.firebase.FirebaseException e) {
showMessage(e.toString());
}
@Override
public void onCodeSent(String s, com.google.firebase.auth.PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(s, forceResendingToken);
codeSent = s;
}
};
{
}
public void _verify () {
code = edittext2.getText().toString();
com.google.firebase.auth.PhoneAuthCredential credential = com.google.firebase.auth.PhoneAuthProvider.getCredential(codeSent, code);
signInWithPhoneAuthCredential(credential);
}
private void signInWithPhoneAuthCredential(com.google.firebase.auth.PhoneAuthCredential credential) {
fauth.signInWithCredential(credential) .addOnCompleteListener(this, _fauth_sign_in_listener);
}
{
}
@Deprecated
public void showMessage(String _s) {
Toast.makeText(getApplicationContext(), _s, Toast.LENGTH_SHORT).show();
}
@Deprecated
public int getLocationX(View _v) {
int _location[] = new int[2];
_v.getLocationInWindow(_location);
return _location[0];
}
@Deprecated
public int getLocationY(View _v) {
int _location[] = new int[2];
_v.getLocationInWindow(_location);
return _location[1];
}
@Deprecated
public int getRandom(int _min, int _max) {
Random random = new Random();
return random.nextInt(_max - _min + 1) + _min;
}
@Deprecated
public ArrayList<Double> getCheckedItemPositionsToArray(ListView _list) {
ArrayList<Double> _result = new ArrayList<Double>();
SparseBooleanArray _arr = _list.getCheckedItemPositions();
for (int _iIdx = 0; _iIdx < _arr.size(); _iIdx++) {
if (_arr.valueAt(_iIdx))
_result.add((double)_arr.keyAt(_iIdx));
}
return _result;
}
@Deprecated
public float getDip(int _input){
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, _input, getResources().getDisplayMetrics());
}
@Deprecated
public int getDisplayWidthPixels(){
return getResources().getDisplayMetrics().widthPixels;
}
@Deprecated
public int getDisplayHeightPixels(){
return getResources().getDisplayMetrics().heightPixels;
}
}
###################### マニフェスト.xml -
私が使用した権限 -
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
私を助けてください