6

Android 프로젝트에 Firebase를 통합하여 다른 애플리케이션 사용자에 대해 다른 매개 변수 값을 얻었습니다. 사용자에 맞게 내 중포 기지 프로젝트 enter image description here 사용자 기반의 Firebase 원격 설정 조건

  • 만든 관객의

    1. 설정 사용자 : 내가 다음 않았다 enter image description here의 UID는 AAAAAAA ...BBBBBBB ...했다 따라서. 조건에 대한 값을 enter image description here 및 설정 :이 매개 변수에 대한 enter image description here
    2. 추가 조건 :
    3. 원격 구성 섹션에서 매개 변수를 만든

      : enter image description here
    4. 는 응용 프로그램에서 사용자가 로그인하려면 다음 코드를 입력

      Task resultTask = 
          firebaseAuth.signInWithEmailAndPassword("[email protected]", password);
    5. 로그인에 성공했는지 확인하십시오.
    6. 는 그럼 난 원격 구성 매개 변수를 가져 오기 위해 시도 :
      firebaseRemoteConfig.fetch() 
             .addOnCompleteListener(new OnCompleteListener() { 
              @Override 
              public void onComplete(@NonNull Task task) { 
               if (task.isSuccessful()) { 
                // Once the config is successfully fetched it must be activated before newly fetched 
                // values are returned. 
                firebaseRemoteConfig.activateFetched(); 
                Log.d(TAG, firebaseRemoteConfig.getString("MyParameter")); 
               } else { 
                Log.d(TAG, "fetch firebase remote config failed. Reason = " + task.getException()); 
               } 
              } 
             });

    그 결과 나는 항상 기본 값 얻었다이었다 : 의 DefaultValue를

    내가 잘못 무슨 짓을? 내가 놓친 게 무엇입니까?

  • 답변

    6

    Firebase Analytics와 Firebase Authentication은 자동으로 상호 연결되지 않는 2 개의 다른 모듈이라고 생각했습니다.

    Firebase 인증을 사용하면 특정 사용자의 일부로 사용자를 자동으로 식별하지 못했습니다.

    Firebase Analytics에 현재 사용자가 특정 사용자 ID를 가지고있어 관련 사용자에게 일치시킬 필요가 있음을 알려야했습니다.

    Task<AuthResult> resultTask = 
        firebaseAuth.signInWithEmailAndPassword("[email protected]", password); 
    resultTask.addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
         @Override 
         public void onComplete(@NonNull Task<AuthResult> task) { 
          // Task completed successfully 
          if (task.isSuccessful()) { 
           firebaseAnalytics.setUserId(task.getResult().getUser().getUid()); 
          } else { 
           Log.d(TAG, "signInWithEmail firebase failed"); 
          } 
         } 
        }); 
    

    중요한 라인은 다음과 같습니다 :

    firebaseAnalytics.setUserId(task.getResult().getUser().getUid());

    어떤 것들은 참고 :

    1. 사용자가 할 수있는 청중에 있으면 나는 onComplete를 로그인 콜백에 다음 코드를 추가 잠재 고객을 종료하지 마십시오. 즉, 동일한 기기에서 앱의 사용자를 변경하면 2 명의 잠재 고객과 일치하는 새로운 잠재 고객과 이전 잠재 고객을 찾습니다.
    2. 이것을 테스트하는 동안 원격 구성 매개 변수를 매우 자주 가져와야했습니다. 캐시 만료를 0으로 설정했지만 다른 문제가있었습니다. Firebase 서버가 스로틀 예외로 응답했습니다. 따라서 테스트를하는 동안 서버를 스로틀 (throttle)하지 않도록하십시오. 그렇지 않으면 테스트 사이에 오랜 시간 동안 기다려야합니다.
    3. 잘 모르겠지만 Firebase Analytics가 Firebase Authentication으로 정의 된 ID와 다른 ID를 가진 앱 사용자를 추적한다는 사실은 분명합니다. 필자는 이것이 동일한 장치의 Firebase Authentication에서 다른 사용자 ID로 로그인하면 Firebase 사용자 ID보다 우선 설정된 대상과 여전히 일치하는 것입니다.
    +0

    분석가가 고유 ID를 인식하려면 로그인해야합니까? –

    +1

    @IgorGanapolsky : 예, 로그인이 필요하므로 Firebase가 고유 ID를 기록합니다. – noti