2017-09-18 304 views
0

我試圖使用Google Maps API和Firebase構建跟蹤器應用程序。 我想在onStart()中使用getValue()方法從Firebase獲取值並將它們用作經度和緯度來顯示位置。我的代碼:FirebaseDatabase.getInstance()崩潰應用程序

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崩潰。

+0

'「Raunak Trikha」'不應該是一個關鍵。鍵不應包含空格。 –

+1

但是我們仍然需要查看錯誤的堆棧跟蹤以瞭解真正的問題。 –

+0

「Raunak Trikha」是根的第一個孩子。無論如何,該應用程序在此聲明崩潰:'私人FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();' –

回答

0

你必須調用

FirebaseApp.initializeApp(getApplicationContext()); 

線,當你的應用程序啓動?

onCreate()第一個活動或應用程序類的方法。

+0

這可能是實際的解決方案,但你說它像一個評論。 –

+0

請說明我需要在哪裏添加此代碼。 –

+0

在您的第一個活動或應用程序類的onCreate()方法。 – nsevim

0

爲了簡化代碼,請使用以下行:需要在onCreate()方法

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(/* ... */); 

這一切都行。