Получить все значения из базы данных Firebase, не зная некоторых дочерних имен - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь получить некоторый дочерний элемент values, не зная parent-child keys, потому что они являются UUID, сгенерированными пользователем или firebase.

Моя структура Firebase выглядит так:

{
  AllUsers: {

      76f4bd92-1fcd-4b4d-86c5-66b7e2822def: { // uuid generated by user

            Users Username: {

                -LCdF2QJ5c46lRnndtmY: { // uuid generated by firebase
                    count: 1,
                    dateTime: 1526479204163,
                    name: "picture1",
                    url: "https://firebasestorage.googleapis.com/",
                },
                -LCdF2QJ5c46lRnndtmQ: {
                    count: 2,
                    dateTime: 1526479204163,
                    name: "picture2",
                    url: "https://firebasestorage.googleapis.com/",
                }
            }
      }
  }
}

Я пытаюсь заставить всех пользователей сгенерировать uuid и usernames, а также url их первого изображения при сортировке по count, чтобы я мог сохранить их в структуре, подобной следующей:

class GalleryFolderView {
  String uuid;
  String name;
  String firstImageUrl;

  GalleryFolderView(this.uuid, this.name, this.firstImageUrl);
}

Я продвинулся так далеко со своим кодом, но не могу углубиться в структуру:

  reference = FirebaseDatabase.instance.reference().child("AllUsers");
  reference.onValue.listen((Event event) {
    var key = event.snapshot.value.keys.toString();
    print(key); => // prints out (76f4bd92-1fcd-4b4d-86c5-66b7e2822def) why the brackets? 
  });

Любая помощь будет оценена, спасибо.

1 Ответ

0 голосов
/ 16 мая 2018

Это должно делать то, что вы хотите:

 reference.onValue.listen((Event event) {
    var value = event.snapshot.value;
    var uuids = value.keys;
    for(var uuid in uuids) {
      var userNames = value[uuid].keys;
      for(var userName in userNames) {
        var images = value[uuid][userName].values;
        var image = images.firstWhere((img) => img[count]== 1);
        print('uuid: $uuid, userName: $userName, url: $image);
      }
    } 
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...