如果这是最后一个孩子,从Firebase检索数据时如何知道?
答案 0 :(得分:2)
根据Firebase documentation:
public DatabaseReference getParent()
对父位置的DatabaseReference,如果此实例引用根位置,则为nullpublic DatabaseReference getRoot()
对此Firebase数据库的根位置的引用
因此,您可以在DatabaseReference对象上使用getRoot()始终转到root或getParent(),直到获得null。
您应该在扁平化结构中构建数据,这样您就不会对数据的结束位置感到困惑(documentation):
避免嵌套数据
由于Firebase实时数据库允许最多嵌套数据深度为32级,因此您可能会认为这应该是默认结构。但是,当您在数据库中的某个位置获取数据时,还会检索其所有子节点。此外,当您在数据库中的某个节点上授予某人读取或写入权限时,您还可以授予他们访问该节点下所有数据的权限。因此,在实践中,最好保持数据结构尽可能平坦。