如何仅从Firebase实时数据库中的一个表中获取数据

如何仅从Firebase实时数据库中的一个表中获取数据,firebase,flutter,dart,firebase-realtime-database,Firebase,Flutter,Dart,Firebase Realtime Database,我有一个大问题需要尽快解决。 我的firebase实时数据库的结构如下: 图片: 我的问题很简单: 我如何只检索FriendID作为一个列表,而不检索内部数据,如firendsStatus、lastMessage、lastTimestamp 我现在的回答是这样的:{friendsArray:{'34uibjerktbbt854uigefg':{'lastMessage':'ajskdkjasd',…},{'574uibsd784546ktbbt854uigefg':{'lastMessage'

我有一个大问题需要尽快解决。 我的firebase实时数据库的结构如下:

图片:

我的问题很简单: 我如何只检索FriendID作为一个列表,而不检索内部数据,如firendsStatus、lastMessage、lastTimestamp

我现在的回答是这样的:{friendsArray:{'34uibjerktbbt854uigefg':{'lastMessage':'ajskdkjasd',…},{'574uibsd784546ktbbt854uigefg':{'lastMessage':'weurhisdf',…}等等}

我希望它是这样的:{friendsArray:['34uibjerktbbt854uigefg','34uibjerktbbt854uigefg','34uibjerktbbt854uigefg','34uibjerktbbt854uigefg',等等]}

有没有办法做到这一点,因为如果我观察整个数据,它会变得相当大和缓慢


谢谢

不幸的是,这不是实时数据库的工作方式。它总是获取下面的所有数据,您可以使用cloud firestore来代替,或者重新设计您的实时数据库,以便不测试节点。您可以创建单独的节点,仅包含需要获取的数据。

不幸的是,没有获取数据这样的事情仅限子密钥。请参见以下内容: