Flutter中调用Firebase RTDB的get()如何仅获取菜单项ID
获取Firebase Realtime Database子节点ID的解决方案
你需要提取menuItem节点下所有子节点的ID(如J1),而非完整菜单项数据。可以通过遍历DataSnapshot的children集合实现,每个子节点的key就是目标ID。
修改后的代码示例:
final DatabaseReference _dbRef = FirebaseDatabase.instance.ref(); final items = await _dbRef.child('menuItem').get(); if (items.exists) { // 存储所有菜单项ID的列表 List<String> itemIDs = []; // 遍历menuItem下的所有子节点 for (var childSnapshot in items.children) { // 获取子节点的key(即J1、J2这类ID),非空则加入列表 String? id = childSnapshot.key; if (id != null) { itemIDs.add(id); } } // 后续可使用itemIDs做业务处理,比如打印查看 print(itemIDs); }
代码说明
items.children返回menuItem节点下所有子节点的DataSnapshot集合- 每个
childSnapshot.key对应子节点的ID(如J1),直接提取即可 - 用列表统一收集ID,方便后续业务逻辑调用
内容的提问来源于stack exchange,提问作者Stamp777
相关产品推荐
相关产品推荐

