【问题标题】:How to read only one value from Firebase Database in Android Studio?如何从 Android Studio 的 Firebase 数据库中只读取一个值?
【发布时间】:2017-02-28 17:11:15
【问题描述】:

这是我在 Firebase 数据库中的数据库:

如何从我的 Android 应用程序的 Firebase 数据库中仅读取 a1 的值并将其存储在字符串变量 ra1 中?使用给定数据库的示例 Java 代码将非常有帮助。

谢谢。

【问题讨论】:

  • morpion_c76af 是其中一个孩子,对吧?如果是这样,它的父母的名字是什么。或者这是整个数据库?
  • morpion_c76af 是父母

标签: android firebase firebase-realtime-database


【解决方案1】:

在您的情况下,您只想检索该字符串 ONCE,并且不监听任何更改

那么,你要做什么:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.addListenerForSingleValueEvent(new ValueEventListener(){

  @Override
  public void onDataChange(DataSnapshot dataSnapshot){
     String value = dataSnapshot.child("a1").getValue(String.class); //This is a1
   }

});

【讨论】:

    【解决方案2】:

    初始化root并添加childeventlistener:

    DatabaseReference root = FirebaseDatabase.getInstance().getReference().child("morpion_c76af");
        root.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                if(dataSnapshot.getKey().equals("a1")) {
                    String a = (String) dataSnapshot.getValue()
                }
            }
    
            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    
            }
    
            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {
    
            }
    
            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {
    
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
    
            }
        });
    

    希望这会有所帮助。

    【讨论】:

    • 但他想获取一次数据,而不是监听任何事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    相关资源
    最近更新 更多