2016-04-02 12 views
0

Ich versuche, die authData.getProviderData().get("isTemporaryPassword") Methode in Android API zu verwenden, um zu überprüfen, ob das Passwort ein temporäres ist. Obwohl die Methode gibt buchstäblichwahr“, während in Protokolldruck, wenn ich die Methode verwenden, um eine neue Aktivität zu leiten die, wenn die Bedingung überprüft wieÜberprüfen Sie, ob das Passwort vorübergehend auf Firebase Android

if (authData.getProviderData().get("isTemporaryPassword")){ 
         Intent intent = new Intent(MainActivity.this,PasswordReset.class); 
         Bundle bundle = new Bundle(); 
         intent.putExtra("email",email.getText().toString()); 
         intent.putExtra("password",password.getText().toString()); 
         startActivity(intent); 

es sagt „Inkompatible Typen erforderlich: boolean gefunden: java.lang.Object“

bin ich etwas fehlt ??

Antwort

3

Die Methode #getProviderData() gibt eine Map<String, Object> zurück. Wenn Sie den Wert #get() eingeben, ist dies ein Object. Da Sie wissen, dass dies ein boolean ist, können Sie es zu Boolean werfen im if Zustand zu verwenden:

if ((Boolean)authData.getProviderData().get("isTemporaryPassword")) { … 

Sie keine Object innerhalb eines if Zustand setzen, nur boolean. Sie können jedoch eine Boolean setzen, weil Autoboxing wird vorsichtig sein und zu boolean konvertieren.

Das erklärt auch, warum Tests für .equals(true) funktioniert. Wenn Sie dies tun, führt die Methode .equals die Konvertierung durch, um zu testen, ob der in diesem Objekt gespeicherte Wert true entspricht.

+1

Tolle Erklärung Douglas! –

1

Diese Lösung funktionierte für mich

if(authData.getProviderData().get("isTemporaryPassword").equals(true))

Da if() sich für einen wahren Zustand überprüft, ich verstehe nicht, warum es wahr gleich mein Problem gelöst. Ich denke nicht, dass dies eine richtige Lösung ist, aber es funktioniert.

+0

Siehe meine Antwort für eine Erklärung für dieses Verhalten –

+1

Danke für die Erklärung Douglas. Ich wusste, dass ich etwas vermisste. – Vijay

Verwandte Themen