Невозможно отобразить изображение в режиме просмотра изображений из Firebase - PullRequest
0 голосов
/ 12 ноября 2019

Я работаю над приложением для Android и хочу получить изображение из firebase и отобразить его в Imageview. Мой код работает, но изображение не может отображаться на виртуальных или реальных устройствах. Я попытался отобразить простое изображение, и оно также ничего мне не показало, поэтому я попытался сделать его фоновым, и оно работает. Так что я не знаю точно, проблема

My Mainactivity.java:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notificationdisplay);
    FirebaseApp.initializeApp(this);
    final TextView title = (TextView)findViewById(R.id.title);
    final TextView text = (TextView)findViewById(R.id.t);
    //--------------------String text1="";
   FirebaseDatabase.getInstance().getReference().child("notification").child("text").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            Log.v("text:",dataSnapshot.getValue().toString());
            text.setText(dataSnapshot.getValue(String.class));
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
    //-----------------title
    FirebaseDatabase.getInstance().getReference().child("notification").child("title").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            Log.v("title:",dataSnapshot.getValue().toString());
            title.setText(dataSnapshot.getValue(String.class));

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }

    });
    //-----------------Image
    ImageView image = (ImageView)findViewById(R.id.imageView);

    String url = "gs://my-map-1552492593540.appspot.com/ala.png";
    Glide.with(getApplicationContext()).load(url).into(image);


}

И XML-файл содержит:

    </TextView>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="15dp"
    android:text="This is my title field"
    android:id="@+id/title"
    android:gravity="center"
    android:layout_gravity="center"
    android:textAlignment="center"

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:layout_weight="1"
        android:paddingTop="100dp"
        android:paddingLeft="40dp"/>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

</LinearLayout>
<TextView
    android:id="@+id/t"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="40dp"
    android:paddingTop="50dp"
    android:paddingRight="40dp"
    android:text="This is my text field when I want to display my fire base data."
    android:textSize="20dp"></TextView>
<ImageView
    android:id="@+id/imageView2"
    android:layout_width="40dp"
    android:background="@drawable/ic_add_alert_black_24dp"
    android:layout_height="40dp" />

Ответы [ 2 ]

1 голос
/ 12 ноября 2019

вы используете МЕСТО ХРАНЕНИЯ Firebase, оно не будет работать. Вы должны использовать ЗАГРУЗИТЬ URL, как показано на рисунке ниже, с выделенным

see below image

0 голосов
/ 12 ноября 2019

gs://my-map-1552492593540.appspot.com/ala.png - это ссылка на файл в Google Cloud Storage. Но Glide не распознает этот формат URL, поэтому он не сможет показать изображение.

Чтобы показать изображение в Glide, вам нужно получить так называемый URL для загрузки изображения.

Что-то вроде:

String url = "gs://my-map-1552492593540.appspot.com/ala.png";

FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference ref = storage.getReferenceFromUrl(url);

storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        Glide.with(getApplicationContext()).load(uri.toString).into(image);
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...