FirebaseDatabase.getInstance()崩溃的应用程序

时间:2017-09-18 14:59:48

标签: java android google-maps firebase firebase-realtime-database

我正在尝试使用Google Maps API和Firebase构建跟踪器应用。 我正在尝试使用onStart()中的getValue()方法从Firebase获取值,并将它们用作纬度和经度来显示位置。我的代码:

MapsActivity.java

private FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
private DatabaseReference mRootReference =firebaseDatabase.getReference();
private DatabaseReference mChildReference=mRootReference.child("Raunak Trikha");
private DatabaseReference mChildReference1=mChildReference.child("id");
private DatabaseReference mChildReference2=mChildReference1.child("lat");
private DatabaseReference mChildReference3=mChildReference1.child("long");

@Override
protected void onStart(){
    super.onStart();
    mChildReference2.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            rlat=dataSnapshot.getValue(double.class);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}`

每当我尝试在我的AVD中运行此应用程序时,它都会崩溃。

2 个答案:

答案 0 :(得分:0)

你必须致电

FirebaseApp.initializeApp(getApplicationContext());

行,您的应用何时启动?

第一个活动或应用程序类的onCreate()方法。

答案 1 :(得分:0)

要简化代码,请使用以下行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference latRef = rootRef.child("Raunak Trikha").child("id").child("lat");
DatabaseReference longRef = rootRef.child("Raunak Trikha").child("id").child("long");
latRef.addListenerForSingleValueEvent(/* ... */);
longRef.addListenerForSingleValueEvent(/* ... */);

onCreate()方法需要所有这些行。