Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Firebase Android Studio中获取3个数据中的1个数据_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 如何在Firebase Android Studio中获取3个数据中的1个数据

Java 如何在Firebase Android Studio中获取3个数据中的1个数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我在firebase中有3个ID不同的数据 例如: Data : - ABC Lat: 12345 Lng: 23124 - DEF Lat: 23324 Lng: 43553 - GHI Lat: 23424 Lng: 12343 如何从IDABC中获取12345的Lat,我希望我可以用Toast trigger by Button显示它。从快照中,您必须获取您的孩子和元素,如下所示: private Fireba

我在firebase中有3个ID不同的数据

例如:

Data :
  - ABC 
     Lat: 12345
     Lng: 23124
  - DEF 
     Lat: 23324
     Lng: 43553
  - GHI 
     Lat: 23424
     Lng: 12343

如何从ID
ABC
中获取12345的
Lat
,我希望我可以用Toast trigger by Button显示它。

从快照中,您必须获取您的孩子和元素,如下所示:

private FirebaseDatabase database = FirebaseDatabase.getInstance();
private final DatabaseReference myRef = database.getReference("Data"); //Init your ref at Data
myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {                       
            String lat = messageSnapshot.child("ABC").child("Lat").getValue().toString(); //acces to ABC => Lat
            Toast.makeText(getApplicationContext(), "Lat: " + lat, Toast.LENGTH_SHORT).show() //print here
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
};

若要发送包含
lat
值的邮件,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference abcRef = rootRef.child("Data").child("ABC");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        double lat = dataSnapshot.child("Lat").getValue(Double.class);
        Toast.makeText(getApplicationContext(), "Lat: " + lat, Toast.LENGTH_SHORT).show()
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
abcRef.addListenerForSingleValueEvent(valueEventListener);

输出将是:
12345

您将以json格式获取此数据,然后进行比较以获取Lat或Lng?Lat和Lng正常,只有一个。@noogui请阅读
数据库
。getreferences已更新我忘记了数据库的实例;)@husen
messageSnapsot
是红色的,我的坏啊哈。您可以随时将addValueListener放入onClickListener;)@husensame就像上面的答案一样,我得到了crash to我可以把ValueEventListner放在
按钮里面吗?setOnClickListner
?我试图把它,但我的应用程序停止工作。是的,你可以。由于出现错误,它停止工作。这是什么错误?单击按钮时没有错误,应用程序停止工作如果出现崩溃(应用程序停止工作),则表示logcat中存在异常。什么是例外?是用红色写的。一切都好吗?你解决问题了吗?