제목 없는 데이터베이스

1. 게시판 @유진

  1. 게시판 recyclerview 및 item XML
  2. RecylclerView와 Adapter

작동 명세

  1. BoardFragment 내에 RecylcerView 및 글 쓰기 Button
    1. 글쓰기 button→WriteBoardActivity 이동 (intent)
      1. 글 작성→ 등록하기 button ⇒ 게시글 add 및 BoardFragment로 이동
    2. listitem 클릭 → DetailBoard 액티비티로 이동

Untitled

Untitled

Untitled

<aside> 💡 해결해야 할 문제

자바 안드로이드 질문 입니다.

현재 mainActivity의 바텀 네비 구성 중에 boardFragment가 있고, 프레그먼트 안에서 글쓰기button이 있습니다. 글쓰기 button을 누르면 intent를 통해 writeActivity로 이동합니다. writeActivity에서 등록하기button을 누르면 다시 boardFragment로 이동해야하는데(+입력한 정보들을 가지고) 마땅히 방법이 떠오르지 않습니다.액티비티에서 프레그먼트 사용은 일정 부분만을 바꿀때만 사용해보았는데, 화면 이동의 개념으로 사용할 수 있는 지 궁금합니다!만일 윗 내용이 안된다면, writeactivity를 프래그먼트로 전환해야할까요?

</aside>

첫번째 화면의 프래그먼트로 두번째 화면이 들어감.

레퍼런스

망한 코드

<aside> 💡 자유게시판

2. 구글 로그인 @유진

레퍼런스

  1. 구글 로그인 및 이메일/비밀번호 로그인 마무리
    1. 구글 로그인 → 성공

      
              // [START config_signin]
              // Configure Google Sign In
              GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                      .requestIdToken(getString(R.string.default_web_client_id))
                      .requestEmail()
                      .build();
              mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
              // [END config_signin]
      
              // [START initialize_auth]
              // Initialize Firebase Auth
              firebaseAuth = FirebaseAuth.getInstance();
              // [END initialize_auth]
      
              signInButton.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      signIn();
                  }
              });
      
          // [START on_start_check_user]
          @Override
          public void onStart() {
              super.onStart();
              // Check if user is signed in (non-null) and update UI accordingly.
              FirebaseUser currentUser = firebaseAuth.getCurrentUser();
              //updateUI(currentUser);
          }
          // [END on_start_check_user]
      
          @Override
          public void onActivityResult(int requestCode, int resultCode, Intent data) {
              super.onActivityResult(requestCode, resultCode, data);
      
              // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
              if (requestCode == RC_SIGN_IN) {
                  Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
                  try {
                      // Google Sign In was successful, authenticate with Firebase
                      GoogleSignInAccount account = task.getResult(ApiException.class);
                      firebaseAuthWithGoogle(account);
                  } catch (ApiException e) {
                      // Google Sign In failed, update UI appropriately
                      Log.w(TAG, "Google sign in failed", e);
                      Toast.makeText(getApplicationContext(), "Google sign in Failed", Toast.LENGTH_LONG).show();
                  }
              }
          }
      
          // [START auth_with_google]
          private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
              Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
              // [START_EXCLUDE silent]
              //showProgressDialog();
              // [END_EXCLUDE]
      
              AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
              firebaseAuth.signInWithCredential(credential)
                      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                          @Override
                          public void onComplete(@NonNull Task<AuthResult> task) {
                              if (task.isSuccessful()) {
                                  // Sign in success, update UI with the signed-in user's information
                                  Log.d(TAG, "signInWithCredential:success");
                                  FirebaseUser user = firebaseAuth.getCurrentUser();
                                  //updateUI(user);
                                  Toast.makeText(getApplicationContext(), "Complete", Toast.LENGTH_LONG).show();
                                  Intent intent = new Intent(loginActivity.this, MainActivity.class);
                                  startActivity(intent);
      
                              } else {
                                  // If sign in fails, display a message to the user.
                                  Log.w(TAG, "signInWithCredential:failure", task.getException());
                                  // Snackbar.make(findViewById(R.id.main_layout), "Authentication Failed.", Snackbar.LENGTH_SHORT).show();
                                  Toast.makeText(getApplicationContext(), "Authentication Failed", Toast.LENGTH_LONG).show();
      
                                  // updateUI(null);
                              }
      
                              // [START_EXCLUDE]
                              // hideProgressDialog();
                              // [END_EXCLUDE]
                          }
                      });
          }
          // [END auth_with_google]
      
          // [START signin]
          private void signIn() {
              Intent signInIntent = mGoogleSignInClient.getSignInIntent();
              startActivityForResult(signInIntent, RC_SIGN_IN);
          }
          // [END signin]
      
          private void signOut() {
              // Firebase sign out
              firebaseAuth.signOut();
      
              // Google sign out
              mGoogleSignInClient.signOut().addOnCompleteListener(this,
                      new OnCompleteListener<Void>() {
                          @Override
                          public void onComplete(@NonNull Task<Void> task) {
                              Toast.makeText(getApplicationContext(), "Complete", Toast.LENGTH_LONG).show();
                          }
                      });
          }
      

      Untitled

      Untitled

    2. 자체 로그인 및 회원가입 → 실패 소셜 로그인(구글)만 진행할까 생각 중

3. 리뷰 @박윤빈