有没有办法在Firebase中减少请求?

实际上我的Firestore集合如下所示:

user :
    |-> 0000 (uid)
        |-> avatar : 'url'
        |-> name : 'josh'
    |-> 1111
        |-> avatar : 'url'
        |-> name : 'steve'
    [...]

follow :
    |-> 0000
        |-> 1111 : true
        |-> 8888 : true
    [...]

message :
    |-> 0000
        |-> 8888
            |-> 1264978800 (timestamp)
                |-> message = "hello"
            |-> 1264978987 
                |-> message = "How are you"
    |-> 8888
        |-> 0000
            |-> 1264914253
                |-> message = "hey dude "
            |-> 1264975895 
                |-> message = "fine and you?"

如果我想获取个人资料以及0000和8888之间的对话(例如,获取他们的头像),我需要:

  1. 检查他们的朋友
  2. 是,收到0000
  3. 得到8888的消息
  4. 获得0000个人资料
  5. 获取8888个人资料

如果我要列出所有对话的列表0000,则需要执行以下操作:

  1. 检查所有用户是否知道他们是否是朋友
  2. 为每个朋友获取个人资料
  3. 对于每个朋友,获取消息列表。

这是非常简单的查询,例如,它比mysql中的查询重。

有没有办法不进行所有这些查询?我的数据库模式好吗?

感谢帮助。