首页 > 解决方案 > 如何获取 Firebase 实时数据库中根节点的子 ID?

问题描述

这是我的实时数据库 JSON 数据。我想获取根节点资产的子 ID。但似乎无法弄清楚,因为我没有使用用户 ID,而是在扫描条形码并将数据保存在特定的条形码编号下。

这是屏幕截图

在此处输入图像描述

标签: javaandroidfirebasefirebase-realtime-database

解决方案


要获取这些密钥,请使用以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference assetsRef = rootRef.child("Assets");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();
            Log.d(TAG, key);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
assetsRef.addListenerForSingleValueEvent(valueEventListener);

logcat 中的结果将是:

CFM100010254BG
GE123100010254GB

如果您只想要第一个孩子 ( CFM100010254BG),而不是使用 a DatabaseReference,请使用以下查询:

Query query = assetsRef.orderByChuild("asset_model").equalTo("CFM56");

并在此查询上附加侦听器。


推荐阅读