Android Firebase createUser()无法正常工作

萨钦·瓦玛(Sachin Varma)

我正在尝试使用电子邮件和密码在Firebase控制台中创建用户,但显示错误无法正常工作。实际上,我们可以通过转到仪表板并单击来在控制台中添加用户,add user但我想使此过程自动化。

这是完整的代码:

    import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.firebase.client.AuthData;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.GoogleAuthProvider;

import java.util.Map;

public class SignInActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener,
        View.OnClickListener {

    private static final String TAG = "SignInActivity";
    private static final int RC_SIGN_IN = 9001;
    private SignInButton mSignInButton;
    private Button but;
    private EditText email;
    private EditText password;
    private FirebaseAuth mAuth;
    private FirebaseUser mFirebaseUser;

    private GoogleApiClient mGoogleApiClient;
    private FirebaseAuth mFirebaseAuth;
    String user_id="",pass="";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_in);
        email=(EditText)findViewById(R.id.emails);


        password=(EditText)findViewById(R.id.passwords);

        but=(Button)findViewById(R.id.create);
        Firebase.setAndroidContext(getBaseContext());

        mAuth = FirebaseAuth.getInstance();

        but.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                user_id= email.getText().toString();
                pass= password.getText().toString();
               Firebase ref = new Firebase("https://final-6b828.firebaseio.com/auth");
                ref.createUser(user_id, pass, new Firebase.ValueResultHandler<Map<String, Object>>() {
                    @Override
                    public void onSuccess(Map<String, Object> result) {
                        System.out.println("Successfully created user account with uid: " + result.get("uid"));
                        String a=  result.get("uid").toString();
                        Log.i("Success",user_id);
                        Log.i("Success",pass);
                        Toast.makeText(getApplicationContext(), "Pass",
                                Toast.LENGTH_LONG).show();
                    }
                    @Override
                    public void onError(FirebaseError firebaseError) {
                        // there was an error
                        System.out.println("Failed to create user account : ");
                        Log.i("Failed","a");
                        Toast.makeText(getApplicationContext(), "Failed",
                                Toast.LENGTH_LONG).show();
                    }

                });


            }
        });


        mSignInButton = (SignInButton) findViewById(R.id.sign_in_button);


        mSignInButton.setOnClickListener(this);

        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.default_web_client_id))
                .requestEmail()
                .build();
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .build();

        // Initialize FirebaseAuth
        mFirebaseAuth = FirebaseAuth.getInstance();
    }

    private void handleFirebaseAuthResult(AuthResult authResult) {
        if (authResult != null) {

            FirebaseUser user = authResult.getUser();
            Toast.makeText(this, "Welcome " + user.getEmail(), Toast.LENGTH_SHORT).show();


            startActivity(new Intent(this, MainActivity.class));
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.sign_in_button:
                signIn();

                break;
            default:
                return;
        }
    }

    private void signIn() {
        Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == RC_SIGN_IN) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if (result.isSuccess()) {

                GoogleSignInAccount account = result.getSignInAccount();
                firebaseAuthWithGoogle(account);
                Log.e(TAG, "Google Sign In Successfull.");
            } else {

                Log.e(TAG, "Google Sign In failed.");
            }
        }
    }

    private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
        Log.d(TAG, "firebaseAuthWithGooogle:" + acct.getId());
        AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
        mFirebaseAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());

                        if (!task.isSuccessful()) {
                            Log.w(TAG, "signInWithCredential", task.getException());
                            Toast.makeText(SignInActivity.this, "Authentication failed.",
                                    Toast.LENGTH_SHORT).show();
                        } else {
                            startActivity(new Intent(SignInActivity.this, MainActivity.class));
                            finish();
                            try {
                                Thread.sleep(5000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });
    }

    @Override
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

        Log.d(TAG, "onConnectionFailed:" + connectionResult);
        Toast.makeText(this, "Google Play Services error.", Toast.LENGTH_SHORT).show();
    }

}
}

用于创建用户的代码是:

but.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            user_id= email.getText().toString();
            pass= password.getText().toString();
           Firebase ref = new Firebase("https://final-6b828.firebaseio.com/auth");
            ref.createUser(user_id, pass, new Firebase.ValueResultHandler<Map<String, Object>>() {
                @Override
                public void onSuccess(Map<String, Object> result) {
                    System.out.println("Successfully created user account with uid: " + result.get("uid"));
                    String a=  result.get("uid").toString();
                    Log.i("Success",user_id);
                    Log.i("Success",pass);
                    Toast.makeText(getApplicationContext(), "Pass",
                            Toast.LENGTH_LONG).show();
                }
                @Override
                public void onError(FirebaseError firebaseError) {
                    // there was an error
                    System.out.println("Failed to create user account : ");
                    Log.i("Failed","a");
                    Toast.makeText(getApplicationContext(), "Failed",
                            Toast.LENGTH_LONG).show();
                }

            });


        }
    });
萨钦·瓦玛(Sachin Varma)

创建用户的正确代码是..

but.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            user_id= email.getText().toString();
           pass= password.getText().toString();
            createAccount(user_id,pass);
 }
    });

 private void createAccount(String email, String password) {
    Log.d(TAG, "createAccount:" + email);
    if (!validateForm()) {
        return;
    }

   // showProgressDialog();

    // [START create_user_with_email]
    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    Log.d(TAG, "createUserWithEmail:onComplete:" + task.isSuccessful());

                    // If sign in fails, display a message to the user. If sign in succeeds
                    // the auth state listener will be notified and logic to handle the
                    // signed in user can be handled in the listener.
                    if (!task.isSuccessful()) {
                        Toast.makeText(SignInActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                    }

                    // [START_EXCLUDE]
                    //hideProgressDialog();
                    // [END_EXCLUDE]
                }
            });
    // [END create_user_with_email]
}
private boolean validateForm() {
    boolean valid = true;

    String emails = email.getText().toString();
    if (TextUtils.isEmpty(emails)) {
       email.setError("Required.");
        valid = false;
    } else {
       email.setError(null);
    }

    String passwords = password.getText().toString();
    if (TextUtils.isEmpty(passwords)) {
        password.setError("Required.");
        valid = false;
    } else {
       password.setError(null);
    }

    return valid;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Firebase createUser()无法正常工作

来自分类Dev

Android:Firebase ChildEventListener()无法正常工作

来自分类Dev

Android Firebase getValue()无法正常工作

来自分类Dev

Android Firebase getValue()无法正常工作

来自分类Dev

使用Android从Firebase检索数据无法正常工作

来自分类Dev

带有Firebase的Android Studio无法正常工作

来自分类Dev

Firebase 登录在 android 中无法正常工作

来自分类Dev

android 中的 Firebase 推送通知无法正常工作

来自分类Dev

Firebase无法正常工作

来自分类Dev

Firebase 无法正常工作

来自分类Dev

FIrebase Java / Android createUser失败

来自分类Dev

Firebase .on('value')无法正常工作

来自分类Dev

Firebase服务无法正常工作

来自分类Dev

Firebase limitToFirst无法正常工作

来自分类Dev

Firebase orderbypriority无法正常工作

来自分类Dev

Firebase网站无法正常工作

来自分类Dev

Firebase FaceBookAuthUI无法正常工作?

来自分类Dev

Firebase查询无法正常工作

来自分类Dev

Android AccelerateDecelerateInterpolator无法正常工作

来自分类Dev

Android ScrollView无法正常工作

来自分类Dev

Android HttpResponseCache无法正常工作

来自分类Dev

Android mkdirs()无法正常工作

来自分类Dev

Android on Onclick无法正常工作

来自分类Dev

Android Listview无法正常工作?

来自分类Dev

Android weightsum无法正常工作

来自分类Dev

Android GeomagneticField无法正常工作

来自分类Dev

setTitle无法正常工作的Android

来自分类Dev

Android onConfigurationChanged无法正常工作

来自分类Dev

Android意向无法正常工作