每个用户都有一些专业人士:
users idxxx
-A
-prof: name: x
name: y
idyyy
-B
-prof: name :y
name :z
name :x
如何按名称顺序对Prof数组列表进行排序 类似的东西:
prof list:
x (2)
y (2)
z (1)
答案 0 :(得分:1)
您应该对数据模型进行非规范化,即创建一个专门的额外" proflist"数据库中的节点,您将在创建新用户时增加相应专业的数量。
实际上它与您解释问题的方式相符。
更好地使用此处详述的交易https://firebase.google.com/docs/database/web/read-and-write#save_data_as_transactions
答案 1 :(得分:1)
更好的替代结构将缓解这一问题。
user_01
-name: A
-professors
-YUik99j9s
name: "prof name 0"
-YJ89jk9sk
name: "prof name 1"
然后在节点中读取
ref = "user_01/professors"
和
orderBy:("name")
请注意,教授子键(-YUik99j9s和-YJ89jk9sk)是使用push()或childByAutoId创建的,具体取决于平台。