Можем ли мы использовать консоль Firebase для загрузки изображений вручную? - PullRequest
0 голосов
/ 06 мая 2020

В моем приложении я должен отображать изображения в RecyclerView из базы данных Firebase, но проблема в том, что я не хочу загружать изображения с помощью своего приложения, но хочу, чтобы они добавлялись вручную с помощью консоли хранилища Firebase, а затем использовали их местоположение будет добавлен в базу данных Firebase. Я пробовал сделать так, но glide не загружает изображения. Так есть ли способ загружать изображения вручную и загружать изображения в приложение?

Отредактировано: введите описание изображения здесь Посмотрите на мое изображение, я просто добавил место хранения изображения в мою таблицу базы данных. После этого я использую эти функции, чтобы получить местоположение изображения и загрузить его с помощью библиотеки glide.

Вот мой код получения категорий из базы данных Firebase.

fun getCategories() : List<Categories>{
    val categoriesList = mutableListOf<Categories>()
    CoroutineScope(IO).launch {
           databaseReference.child("categories")
               .addValueEventListener(object : ValueEventListener {

                   override fun onDataChange(dataSnapshot: DataSnapshot) {
                       for (postSnapshot in dataSnapshot.children) {
                           val categories = postSnapshot.getValue(Categories::class.java)
                           categoriesList.add(categories!!)
                       }
                   }

                   override fun onCancelled(p0: DatabaseError) {

                   }
               })
    }
    return categoriesList
}

И после Получая список категорий, я загружаю свои изображения в класс адаптера. Вот мой код класса адаптера

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
    val model = modelList[position]
    holder.nameOfFruit?.text = model.name
    holder.nameOfFruit?.setOnClickListener {
        it.findNavController().navigate(R.id.action_mainFragment_to_choiceSelectedFragmentModel)
    }
        Glide.with(myContext!!).load(model.url).into(holder.imageOfFruit)
}

Отредактировано: это мой URL-адрес изображения, хранящийся в моей базе данных. введите описание изображения здесь

1 Ответ

0 голосов
/ 07 мая 2020

Вы сохранили URL-адрес "gs: //" в своей базе данных. Это специальный URL-адрес облачного хранилища, который работает только с инфраструктурой Google. Он не будет работать в браузерах или приложениях.

Вместо этого вам придется сохранить URL-адрес загрузки в базе данных. Если вы сделали это правильно, он будет начинаться с «https: //».

...