마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱을 실행하면 강제종료가 발생합니다.

0 추천
import ...

public class NewLoginActivity extends AppCompatActivity {

    private EditText email_edt, pass_edt;
    private LinearLayout login_btn,account_btn;

    private FirebaseAuth firebaseAuth;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_login);

        //editText
        email_edt = findViewById(R.id.email_edit);
        pass_edt = findViewById(R.id.password_edit);

        //button
        login_btn = findViewById(R.id.login_Linear_btn);
        account_btn = findViewById(R.id.account_Linear_btn);

        firebaseAuth = FirebaseAuth.getInstance();

        login_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = email_edt.getText().toString();
                String password = pass_edt.getText().toString();

                joinLogin(email, password);
            }
        });

        //회원 가입
        account_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(NewLoginActivity.this, NewRegisterActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }

    private void joinLogin(String email, String password) {

        firebaseAuth.createUserWithEmailAndPassword(email, password)
                .addOnCompleteListener(NewLoginActivity.this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {

                        if (task.isSuccessful()) {
                            Intent intent = new Intent(NewLoginActivity.this, CompleteActivity.class);
                            startActivity(intent);
                            finish();
                        } else {
                            Toast.makeText(NewLoginActivity.this, "log failed", Toast.LENGTH_SHORT).show();
                            return;
                        }
                    }
                });

    }
}

위의 로그인 코드의 문제인거 같은데, 앱을 실행하고 로그인이나, 회원가입을 눌렀을때 강제 종료가 발생합니다.
준톨이짱짱 (440 포인트) 님이 2020년 3월 12일 질문

3개의 답변

+1 추천
로그캣 > 에러 부분 보시고 어떤오류가 낫는지 확인후 고치시면됩니다
익명사용자 님이 2020년 3월 13일 답변
0 추천
제가 사용하는 회원가입 및 로그인 소스입니다.

public class LoginActivity extends AppCompatActivity {
    private EditText user_id;
    private EditText user_pw;
    SharedPreferences sharedPreferences;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        user_id = findViewById(R.id.user_id);
        user_pw = findViewById(R.id.user_pw);
        Button loginBtn = findViewById(R.id.loginBtn);
        Button signupBtn = findViewById(R.id.signupBtn);
        loginBtn.setOnClickListener(loginClick);
        signupBtn.setOnClickListener(signupClick);
        sharedPreferences = getSharedPreferences("aaaa", Activity.MODE_PRIVATE);
        String id = sharedPreferences.getString("user_id", "");
        if (!"".equals(id)) {
            user_id.setText(id);
        }
    }

    Button.OnClickListener loginClick = new View.OnClickListener() {
        public void onClick(View view) {
            if (!validateForm()) return;
            FirebaseAuth.getInstance().signInWithEmailAndPassword(user_id.getText().toString(), user_pw.getText().toString()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        sharedPreferences.edit().putString("user_id", user_id.getText().toString()).commit();
                        Intent  intent = new Intent(LoginActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    } else {
                        Util9.showMessage(getApplicationContext(), task.getException().getMessage());
                    }
                }
            });
        }
    };

    Button.OnClickListener signupClick = new View.OnClickListener() {
        public void onClick(View view) {
            final String id = user_id.getText().toString();
            FirebaseAuth.getInstance().createUserWithEmailAndPassword( id, user_pw.getText().toString() ).addOnCompleteListener( new OnCompleteListener<AuthResult>() {
                                        @Override
                                        public void onComplete(@NonNull Task<AuthResult> task) {
                                            if (task.isSuccessful()) {
                                                sharedPreferences.edit().putString( "user_id", id ).commit();
                                                final String uid = FirebaseAuth.getInstance().getUid();
                                                UserModel userModel = new UserModel();
                                                userModel.setUid( uid );
                                                userModel.setUserid( id );
                                                FirebaseFirestore db = FirebaseFirestore.getInstance();
                                                db.collection( "users" ).document( uid )
                                                        .set( userModel )
                                                        .addOnSuccessListener( new OnSuccessListener<Void>() {
                                                            @Override
                                                            public void onSuccess(Void aVoid) {
                                                                Intent intent = new Intent( LoginActivity.this, MainActivity.class );
                                                                startActivity( intent );
                                                                finish();
                                                            }
                                                        } );
                                            } else {
                                            }
                                        }
        }
    };
}
꿀개 (2,440 포인트) 님이 2020년 3월 30일 답변
0 추천
Firebase 쪽에  프로젝트 만들어 놓으셨나요?

Firebase 이용하려면 먼저 Firebase 개발자 콘솔에서 프로젝트 만들고

Firebase에서 설명하는대로 세팅 끝난 후 신호가 오가는지 확인해야 합니다.

프로젝트 먼저 안만들어 놓으면 앱 시작하자 마자 auth 관련 크래쉬 뜨면서 종료됩니다.
커피콩 (3,640 포인트) 님이 2020년 3월 31일 답변
...