Как загрузить массив ссылок на изображения в Firestore - PullRequest
0 голосов
/ 02 декабря 2018

Я только что заполнил приложение для блога, которое позволяет пользователю загружать одно изображение как пост.Я использую Firestore для сохранения ссылки на изображение из облачного хранилища

final StorageReference postPath.putFile(mainImageURI).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                  @Override
                  public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                      if (task.isSuccessful()){
                          downloadUri = 
        task.getResult().getDownloadUrl().toString();
       Map<String, Object> map = new HashMap<>();
                    map.put("image_url", downloadUri);
                        {

Однако теперь я намерен разрешить пользователям загружать несколько изображений для каждого сообщения.Загрузка изображений в облачное хранилище для меня не проблема.Но как я могу сохранить массив ссылок на изображения для одного дочернего документа в облачном хранилище.Я не смог понять это.Пожалуйста, помогите.

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

Что касается хранилища, я не думаю, что есть «подуровни», такие как папки или аналогичные объекты, но в Firestore вы можете сделать, как говорит другой ответ, или добавить ссылки в виде коллекции в любой документ.По сути, создайте с ними словарь и просто добавьте его.

0 голосов
/ 30 декабря 2018
private ArrayList<String> image_urls;

.....

 image_urls = new ArrayList<>();
//add your images strings to the array list

// send to firestore with map function
  Map<String, Object> map = new HashMap<>();
map.put("image_urls", image_urls);
 firebaseFirestore.collection("Posts").add(map).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
                        @Override
                        public void onComplete(@NonNull Task<DocumentReference> task) {

                        }
                    });
0 голосов
/ 03 декабря 2018

Firestore имеет тип массива для полей.Просто заполните ArrayList строками всех URL-адресов, которые вы хотите написать, и укажите значение поля в документе, где вы хотите его сохранить.

...