0

Ich kann das Facebook-Profilbild des Benutzers nicht in mein imageView erhalten. Ich versuche, mit Picasso Bibliothek zu bekommen. Haben Sie eine Idee, das zu lösen? Hier sind meine Codes. Danke im Voraus!Kann FB Profilbild mit Firebase nicht bekommen

R.string.facebook_provider_id = "facebook.com"

Fehler:

FATAL EXCEPTION: main 
Process: com.example.yunus.ototakip, PID: 3045 java.lang.RuntimeException: Unable to start activity 

ComponentInfo{com.example.yunus.ototakip/com.example.yunus.ototakip.Hesabim}: java.lang.IllegalArgumentException: Target must not be null. 

Hesabim.java

public class Hesabim extends AppCompatActivity { 

public FirebaseAuth firebaseAuth; 
public FirebaseUser user; 
public CircleImageView userImage; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_hesabim); 
    userImage= (CircleImageView) findViewById(R.id.kullaniciHesapResmi); 
    firebaseAuth = FirebaseAuth.getInstance(); 
    user = FirebaseAuth.getInstance().getCurrentUser(); 
    if(firebaseAuth.getCurrentUser()==null) 
    { 
     finish(); 
     startActivity(new Intent(this,Giris.class)); 
    } 

    kullaniciMail.setText(firebaseAuth.getCurrentUser().getEmail()); 
    String facebookUserId = ""; 
    user = FirebaseAuth.getInstance().getCurrentUser(); 
    for(UserInfo profile : user.getProviderData()) { 
     // check if the provider id matches "facebook.com" 
     if(profile.getProviderId().equals(getString(R.string.facebook_provider_id))) { 
      facebookUserId = profile.getUid(); 
     } 
    } 
    String photoUrl = "https://graph.facebook.com/" + facebookUserId + "/picture?type=medium"; 
    Picasso.with(this).load(photoUrl).into(userImage); 

hesabim.xml

 <de.hdodenhof.circleimageview.CircleImageView 
      android:id="@+id/kullaniciHesapResmi" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/kullanici_pp" 
      fancy:civ_border_color="@color/colorAccent" 
      fancy:civ_border_width="2dp" /> 

Antwort

1

Ich hoffe, Sie fragen Erlaubnis für Profilbild von Facebook zuerst, bcz ohne Erlaubnis facebook wird Ihnen nicht erlauben, etwas zu bekommen.

loginButton.setReadPermissions("public_profile", "email", "user_friends", "user_education_history", "user_hometown", "user_likes", "user_work_history"); 

oder Sie können auch Facebook Callback verwenden, um Benutzerprofil Bild, wie diese zu erhalten ..

private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(final LoginResult loginResult) { 

      GraphRequest request = GraphRequest.newMeRequest(
        loginResult.getAccessToken(), 
        new GraphRequest.GraphJSONObjectCallback() { 
         @Override 
         public void onCompleted(
           JSONObject object, 
           GraphResponse response) { 
          Log.e("response: ", response + ""); 
          try { 
           String id = object.getString("id").toString(); 
           String email = object.getString("email").toString(); 
           String name = object.getString("name").toString(); 
           String profilePicUrl = "https://graph.facebook.com/" + loginResult.getAccessToken().getUserId() + "/picture?type=large"; 
           Log.d("imageFB", profilePicUrl); 
           Log.d("FB_ID:", id); 


           checkFBLogin(id, email, name, profilePicUrl); 

          } catch (Exception e) { 
           e.printStackTrace(); 
          } 

          finish(); 
         } 

        }); 
      Bundle parameters = new Bundle(); 
      parameters.putString("fields", "id,name,email,gender,birthday,friends,likes,hometown,education,work"); 
      request.setParameters(parameters); 
      request.executeAsync(); 
     } 
+0

Mein Code ist inklusive loginButton.setReadPermissions ("E-Mail", "public_profile"); Linie. –

+0

Sollte ich Ihren Code in meiner LoginActivity oder Aktivität verwenden, die nach LoginActivity geöffnet wird? –

+0

Verwenden Sie diesen Code in der Login-Aktivität. Und Bild zur nächsten Aktivität weitergeben. –