android - dataSnapShot.getKey() 不返回实际的按键

标签 android firebase firebase-realtime-database

enter image description here

我正在尝试使用子名称下划线蓝色下划线来获取该推送键下划线红色,但我的代码返回产品作为 dataSnapshot.getKey 上的键是代码: 代码

    Query reference=FirebaseDatabase.getInstance().getReference().child("products").orderByChild("name").equalTo("iphon");
    reference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String key=dataSnapshot.getKey();
            Log.e(TAG,key);

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

04-30 18:27:11.660 22742-22742/com.example.zar.shopistant E/MainActivity: products

最佳答案

当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

所以要获取单个子节点的快照,需要循环遍历结果:

Query reference=FirebaseDatabase.getInstance().getReference().child("products").orderByChild("name").equalTo("iphon");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            String key=childSnapshot.getKey();
            Log.i(TAG,key);
        }
    }

关于android - dataSnapShot.getKey() 不返回实际的按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696281/

相关文章:

android - 元素未在 Xamarin.Forms 中扩展

android - 为什么 onAreaTouched 调用后,onSceneTouchEvent() 事件被调用?

Firebase 云函数和 React Native

javascript - Firebase JavaScript : How to create list of value

ios - 无法将数据从 firebase 加载到 Tableview

android - 在启动画面中心裁剪背景图像

android - 如果 nestedscrollview 结束,如何停用滚动父 ScrollView ?

android - 使用 Firebase 上传更新进度条

ios - 将 Firebase 的值从一个 tableView 传递到另一个

ios - 接收带有查询和键范围的项目