从Firebase数据库获取所有值,而不知道某些子名称

时间:2018-05-16 15:49:46

标签: firebase firebase-realtime-database dart flutter

我试图让某个孩子values在不知道亲子keys的情况下生成,因为他们是由用户或firebase生成的UUID。

我的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/",
                }
            }
      }
  }
}

我试图让所有用户生成uuidusernames,以及按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 :(得分:1)

这应该做你想要的:

     0          1                  2                      3                 4 
 0   -1         0                201701                 201702            201703
 1   0    {'CHQ':3,'EFT':3}  {'CHQ':1,'EFT':1}    {'CHQ':2,'EFT':0}  {'CHQ':0,'EFT':2}              
 2   1000 {'CHQ':1,'EFT':1}  {'CHQ':1,'EFT':1}    {'CHQ':0,'EFT':0}  {'CHQ':0,'EFT':0}                    
 3   2000 {'CHQ':2,'EFT':0}  {'CHQ':0,'EFT':0}    {'CHQ':2,'EFT':0}  {'CHQ':0,'EFT':0}
 4   3000 {'CHQ':0,'EFT':2}  {'CHQ':0,'EFT':0}    {'CHQ':0,'EFT':0}  {'CHQ':0,'EFT':2}