2017-11-20 7 views
-2

私はアンドロイドFirebaseで新規です。 Firebaseデータベースの画像をというフラグメントのアンドロイドアプリに保存しようとしています。firebaseデータベース内の特定のユーザーからのイメージを私のアプリケーションに保存します。

もっと具体的には、現在ログインしているユーザーのIDを検索したいと思います。IDを見つけたら、イメージフィールドの内容(ユーザーのイメージです)を保存して保存しますそれは私のアプリの画像ビュー上にあります。

私の主な目的は、ユーザーのプロファイル画像を作成することです。

これは私のFirebaseデータベースです:

{ 
    "Users" : { 
    "Tc2N9FA0uhTFZuMRNkRSHgiaGQ22" : { 
     "imageurl" : "https://firebasestorage.googleapis.com... 
     "userid" : "Tc2N9FA0uhTFZuMRNkRSHgiaGQ22" 
    } 
    } 
} 

(私は画像を保存しようとしている部分のみ示しています)アプリで私のコードは次のとおりです。

public class Tab1MyProfile extends Fragment { 

ImageView userImageProfileView; 


    @Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.tab1_my_profile, container, false); 

    userImageProfileView = (ImageView) rootView.findViewById(R.id.profile_pic); 

    mAuth = FirebaseAuth.getInstance(); 

    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 
    mDatabase.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(dataSnapshot.exists()) 
      { 
       for(DataSnapshot userDetails : dataSnapshot.getChildren()) { 

        userImageProfileView = userDetails.child("Name").getValue()); 
       } 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

    return rootView; 
} 


} 

これがあると私のエラーは、次のとおりです。

userImageProfileView = userDetails.child("Name").getValue()); 

エラーは次のとおりです。
Incompa tibleタイプ:
必須:android.widget.ImageViewが見つかり:java.lang.Objectの

答えて

0

特定のユーザーからこれらの値を取得するには、Usersノードは、あなたのFirebaseデータベースの直接の子であると仮定すると、次のように使用してくださいコード:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); 
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference userIdRef = rootRef.child("Users").child(uid); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String imageurl = dataSnapshot.child("imageurl").getValue(String.class); 
     String userid = dataSnapshot.child("userid").getValue(String.class); 
     Log.d("TAG", imageurl + "/" + userid); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
userIdRef.addListenerForSingleValueEvent(eventListener); 

あなたの出力は次のようになります。

https://firebasestorage.googleapis.com.../Tc2N9FA0uhTFZuMRNkRSHgiaGQ22 
関連する問題