페이지

[파이어베이스] 구글로그인에 이어 페이스북 로그인 오류

파이어베이스를 이용하여 구글로그인을 성공한 후 페이스북을 이용한 로그인 시도 중
로그인은 성공했으나 메인 액티비티에 적용되지 못한채

onAuthStateChanged() 

에 진입하지 못해서 고심하던 중


파이어베이스 인증 창 중 하단의 고급설정에






이메일 주소당 계정 1개
사용자가 다른 인증 제공업체를 통해 동일한 이메일 주소를 사용하여 여러 계정을 만들 수 없습니다.







를 발견..


이것이 문제 였다..

구글로그인 이메일과 페이스북 로그인 이메일이 동일해서 인증받지 못한 점..
이메일 주소당 계정 1개를 비활성 하니까 제대로 작동한다.




AppCompat 의 문제들

  • You need to use a Theme.AppCompat theme (or descendant) with this activity
  • Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null


둘 다 액티비티 테마 적용에 문제 및 액션바 설정 관련 문제.

기본적으로 테마는 styles 에서 아래와 같이 설정


<!-- Base application theme. -->

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">



MainActivity extend Activity 의 확장을 

public class MainActivity extends AppCompatActivity {

로 수정한다
getActionBar().setDisplayHomeAsUpEnabled(true);//Action Bar back button

였던 액션바 설정들은 

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
로 수정한다.



참고링크
  • http://stackoverflow.com/questions/21814825/you-need-to-use-a-theme-appcompat-theme-or-descendant-with-this-activity
  • http://stackoverflow.com/questions/30681918/nullpointerexception-with-actionbar-setdisplayhomeasupenabledboolean-on-a-nu

앱의 SHA-1 지문

우선 처음으로 자바가 설치 되어야 하고


java 폴더엣 jdk 로 이동, 다시 bin 폴더에 들어가면 keytool이 보인다



상단의 주소를 복사하고 cmd로 들어간다

기존 디렉토리를 처음으로 가고
cd Program Files\Java\jdk1.8.0_101\bin

디렉토리로 이동

  • 디버그용 키 파일 만들기
원도우즈 경우
keytool -list -keystore [경로 + 이름]  -alias androiddebugkey  -storepass android -keypass android

keytool -list  -keystore C:\Users\SJ\.android\debug.keystore -alias androiddebugkey  -storepass android -keypass android

실행한다.







맥의 경우

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android






참고로 cmd  복사는 

편집 > 모두 선택 후, 엔터키를 부르면 복사되고 메모장에 붙여넣기를 하면 된다

  • 릴리스용 키 파일 만들기
keytool -list -keystore [ 경로 + 이름]

keytool -list -keystore E:\0_Android\Key\bermokeystore


맥용

keytool -list -v  -keystore /Volumes/32GB_SJ/0_Android/Key/bermokeystore -alias bermo



[파이어베이스] google 로그인 인증 오류



아무이상 없이 잘 돌아가도 구글 로그인 인증이 에러나면 에러 코드로

statusCode=unknown status code: 12501, resolution=null 를 계속 내뿜는다.



결국 파이어베이스에 등록한 지문 SHA-1 이 맞지 않아서 오류 였다.

다시 키툴을 돌려서 지문을 추가 등록한 바
잘 된다.






Unable to get provider com.google.firebase.provider.Firebase

디버그시 Unable to get provider com.google.firebase.provider.Firebase 를 내 뱉으며 처음 화면 조차 나오지 못할때


앱의 크기가 64k 이상으로 커짐에 따라 Gradle로 multidex용 앱 구성해야 한다



1. build.gradle 파일  수정




  • defaultConfig { 속에

               // Enabling multidex support.               multiDexEnabled true

를 첨부하고
  • dependencies { 안에
               compile 'com.android.support:multidex:1.0.1'


 첨부한다



2. 매니패스트 화일 수정

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>






DELETE_FAILED_INTERNAL_ERROR

DELETE_FAILED_INTERNAL_ERROR 가 나면서 앱이 설치가 안될 때는 바로 프로젝트 클리어







Build > Clean Project.


구글블로그 blogger 에 애드센스 Adsense 연결하기

블로그에 로그인하여 왼쪽 상단의 디자인을 클릭, 다음 아래 캡처한 부분의 html편집 기능을 들어가서 



<data:post.body/> 부분을 찾아 이 앞부분에 

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- blogspot -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-***************
     data-ad-slot="2************"
     data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

의 소스를 추가한다

주의할 점은 제일 앞줄의 <script async src= 부분을 <script async='async' src= 로 수정해야 오류를 막고 저장이 가능하다

[Kotlin] 안드로이드 내부저장소 캐시에 저장하기

안드로이드 내부에 임시적으로 데이터를 저장하기 위해 캐시에 저장한다. 따로 퍼미션이 필요없고 보안이 필요없는 부분에서 잠시 저장할 때 유리하다 내부적으로 저장소가 부족할때 자동으로 지워질수 있다는 경고 private fun saveCache(d...