Wie kann ich ein Foto des Benutzers mit anständiger Auflösung abrufen, die von einer mobilen App verwendet werden kann? Ich schaute auf die Guides und die Api Docs und der empfohlene Weg schien FirebaseUser#getPhotoUrl() zu verwenden. Dies gibt jedoch eine URL an ein Foto mit der Auflösung 50x50 px zurück, die zu niedrig ist, um nützlich zu sein. Gibt es eine Möglichkeit für den Kunden, ein höheres Foto des Benutzers anzufordern? Ich habe die sdks von Facebook Login und Google-Anmeldung separat getestet, und in beiden Fällen sind die Auflösungen der Fotos höher als das, was Firebase Auth zurückgibt. Warum ändert Firebase Auth die ursprünglichen Auflösungen und wie kann ich dies erzwingen? Vielen Dank.Android Firebase Auth - Holen Sie sich das Foto des Benutzers
7
A
Antwort
1
Haben Sie versucht:
Uri xx = FirebaseAuth.getInstance().getCurrentUser().getPhotoUrl();
6
Innen onAuthStateChanged (@NonNull FirebaseAuth firebaseAuth)
versuchen, wenn Sie mit Facebook einloggen:
if (!user.getProviderData().isEmpty() && user.getProviderData().size() > 1)
String URL = "https://graph.facebook.com/" + user.getProviderData().get(1).getUid() + "/picture?type=large";
4
Facebook und Google PhotoURL:
User myUserDetails = new User();
myUserDetails.name = firebaseAuth.getCurrentUser().getDisplayName();
myUserDetails.email = firebaseAuth.getCurrentUser().getEmail();
String photoUrl = firebaseAuth.getCurrentUser().getPhotoUrl().toString();
for (UserInfo profile : firebaseAuth.getCurrentUser().getProviderData()) {
System.out.println(profile.getProviderId());
// check if the provider id matches "facebook.com"
if (profile.getProviderId().equals("facebook.com")) {
String facebookUserId = profile.getUid();
myUserDetails.sigin_provider = profile.getProviderId();
// construct the URL to the profile picture, with a custom height
// alternatively, use '?type=small|medium|large' instead of ?height=
photoUrl = "https://graph.facebook.com/" + facebookUserId + "/picture?height=500";
} else if (profile.getProviderId().equals("google.com")) {
myUserDetails.sigin_provider = profile.getProviderId();
((HomeActivity) getActivity()).loadGoogleUserDetails();
}
}
myUserDetails.profile_picture = photoUrl;
private static final int RC_SIGN_IN = 8888;
public void loadGoogleUserDetails() {
try {
// Configure sign-in to request the user's ID, email address, and basic profile. ID and
// basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
// Build a GoogleApiClient with access to GoogleSignIn.API and the options above.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
System.out.println("onConnectionFailed");
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
} catch (Exception e) {
e.printStackTrace();
}
}
@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) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
// Get account information
String PhotoUrl = acct.getPhotoUrl().toString();
}
}
}
+0
Ich habe dies für Facebook-Teil versucht und gelingen. Ich habe Google Teil noch nicht versucht. Vielen Dank – Dika
Verwandte Themen
- 1. Firebase setDisplayName des Benutzers beim Erstellen des Benutzers Android
- 2. Holen Sie sich das aktuelle Profil des Benutzers mit Schienen und reagieren Sie
- 3. Holen Sie sich das AspNetUser von HttpContext.Current.User
- 4. Firebase auf Android: Wie überprüfen Sie Firebase Auth fehlgeschlagen Grund?
- 5. Holen Sie sich das Grafikkartenmodell?
- 6. Holen Sie sich Fotoreferenz
- 7. Firebase Auth: Android: Benutzer E-Mail und Foto kann nicht angezeigt werden
- 8. Firebase Auth - Keine Provider Daten auf Android
- 9. Android Firebase Auth Zustand Hörer rief mehrmals
- 10. Android ListView: Holen Sie sich Datenindex des sichtbaren Elements
- 11. Lua: Holen Sie sich das wörtliche Namen des Parameters
- 12. Holen Sie sich nur das letzte Element des Arrays Mungo
- 13. Android - Holen Sie sich die Bildquelle
- 14. Holen Sie sich das Zeichen auf Control.KeyDown?
- 15. Flex 4: Holen Sie sich das Pressobjekt
- 16. Holen Sie sich eine Zelle des Datensatzes
- 17. Standort des Benutzers Android
- 18. iPhone Lokalisierung - Holen Sie sich den Sprachcode des Telefons?
- 19. das iDevice Systemsprache Holen Sie sich einen IF
- 20. So rufen Sie Daten des aktuellen Benutzers von Firebase
- 21. FireBase Auth Kombinieren mehrere Auth-System
- 22. Holen Sie sich den Längen- und Breitengrad als Maschine des Benutzers in PHP
- 23. Holen Sie sich Android Bluetooth-Gerät Typ
- 24. Holen Sie sich das Ende eines Arrays
- 25. Holen Sie sich das letzte Duplikat
- 26. Holen Sie sich das aktuelle Element
- 27. Holen Sie sich das $ This in angularjs
- 28. Holen Sie sich das Kontrollkästchen Wert php
- 29. Holen Sie sich das aktuelle Batchfile-Verzeichnis
- 30. Holen Sie sich das geklickte Objekt
Ja, habe ich. Das gibt Ihnen ein 50x50 px Foto. – mobilekid