В данный момент в качестве примера я воссоздаю пост в стиле Instagram, где пользователь может опубликовать описание и изображение (вместе с именем пользователя, поскольку я все еще не настраиваю аутентификацию).Насколько я могу указать только имя пользователя и описание.Кроме того, я могу загрузить новое изображение в качестве источника в изображение на экране.
Мой класс данных:
data class Post(val username: String,
val timestamp: Date,
val postTxt: String,
val numLikes: Int,
val numComments: Int,
val documentId: String)
Я помещаю данные в хэш-карту следующим образом:
val data = hashMapOf(
NUM_LIKES to 0,
NUM_COMMENTS to 0,
POST_TXT to addPostTxt.text.toString().trim(),
TIMESTAMP to FieldValue.serverTimestamp(),
USERNAME to addUsernameTxt.text.toString().trim()
)
, а затем передать его для загрузки в firestore:
FirebaseFirestore.getInstance().collection(POST_REF)
.add(data)
.addOnSuccessListener { finish() }
.addOnFailureListener {
Log.e("Exception", "Could not add post: $it")
toast("Could not add post")
}
И для получения данных я создал функцию, которая делает снимок типа QuerySnapshot, например:
// Clear all the posts before relaod
posts.clear()
snapshot.documents.forEach { document ->
val data = document.data
val name = data?.get(USERNAME) as String
val timestamp = data[TIMESTAMP] as Date
val postTxt = data[POST_TXT] as String
val numLikes = data[NUM_LIKES] as Long
val numComments = data[NUM_COMMENTS] as Long
val documentId = document.id
val newPost = Post(name, timestamp, postTxt, numLikes.toInt(), numComments.toInt(), documentId)
posts.add(newPost)
}
postsAdapter.notifyDataSetChanged()
Пока загрузка текста, текущее время загрузки отлично работает как для загрузки, так и для чтения из базы данных;однако мой вопрос здесь: - Каков наилучший способ (следуя текущей базе кода) загрузить изображение в хранилище и хранилище и соответствующим образом отобразить его в главном окне (желательно с помощью Glide или Picasso)?