6

Ich integrierte Firebase in mein Android-Projekt, um einen anderen Parameterwert für verschiedene Anwendungsbenutzer zu erhalten. Ich habe die folgenden:Firebase remote config condition von userId

  1. Setup-Benutzer in meinem Projekt Firebase enter image description here
  2. Erstellt Publikum die Benutzer entsprechen: enter image description here UIDs waren AAAAAAA ... und BBBBBBB ... entsprechend.
  3. einen Parameter im Remote Config Abschnitt Erstellt: enter image description here
  4. Hinzugefügt Bedingungen für diesen Parameter: enter image description here und Sollwerte für die Bedingungen: enter image description here
  5. den folgenden Code Eingetragen im Benutzer aus der Anwendung anmelden:

    Task resultTask = 
        firebaseAuth.signInWithEmailAndPassword("[email protected]", password);
  6. Sichergestellt, dass die Anmeldung erfolgreich war.
  7. Dann habe ich versucht, die Fernconfig Parameter zu holen:
    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()); 
             } 
            } 
           });

Das Ergebnis war, dass ich immer den Wert vergebene Standard: Default

Was habe ich falsch gemacht? Was habe ich verpasst?

Antwort

6

Nach einigen Untersuchungen habe ich festgestellt, dass Firebase Analytics und Firebase Authentication zwei verschiedene Module sind, die nicht automatisch miteinander verbunden werden.

Die Firebase-Authentifizierung hat den Benutzer nicht wie erwartet automatisch als Teil der bestimmten Zielgruppe identifiziert.

Ich musste Firebase Analytics mitteilen, dass der aktuelle Benutzer die spezifische Benutzer-ID hat, damit er die relevante Zielgruppe erreichen kann. Ich habe den folgenden Code in den Anmelde-onComplete Rückruf:

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"); 
      } 
     } 
    }); 

Die wichtige Zeile ist:

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

Einige Dinge zu beachten:

  1. Sobald ein Benutzer in einem Publikum ist, kann es Verlassen Sie niemals die Zielgruppe. Wenn Sie also den Nutzer in der App vom selben Gerät aus ändern, erhalten Sie eine Übereinstimmung mit 2 Zielgruppen: Die neue Zielgruppe und die vorherige.
  2. Während ich dies getestet habe, musste ich den Remote-Konfigurationsparameter sehr oft abrufen. Obwohl ich den Cache-Ablauf auf 0 gesetzt habe, hatte ich ein anderes Problem: Der Firebase-Server hat irgendwann mit einer Drosselungsausnahme reagiert. Achten Sie also beim Testen darauf, den Server nicht zu drosseln, oder Sie müssen lange zwischen den Tests warten.
  3. Ich bin mir nicht sicher, aber es scheint, dass Firebase Analytics den App-Benutzer mit einer anderen ID verfolgt als die mit Firebase-Authentifizierung definierte. Aus diesem Grund stimmen Sie bei der Anmeldung mit einer anderen Benutzer-ID in der Firebase-Authentifizierung auf demselben Gerät immer noch mit der Zielgruppe überein, die für die vorherige Firebase-Benutzer-ID eingerichtet wurde.
+0

Muss sich der Benutzer anmelden, damit die Analyse ihre eindeutige ID erkennt? –

+1

@IgorGanapolsky: Ja, Anmeldung ist erforderlich, daher zeichnet Firebase die eindeutige ID auf. – noti

Verwandte Themen