2017-09-18 24 views
0

Google Maps APIとFirebaseを使用してトラッカーアプリを構築しようとしています。 私はFireStoreから値を取得するためにonStart()でgetValue()メソッドを使用しようとしており、それらを緯度と経度として使用して場所を表示しています。私のコード: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"はルートの最初の子です。とにかく、次の文でアプリケーションがクラッシュします: 'Private FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();' –

答えて

0

あなたはあなたのアプリケーションが起動

FirebaseApp.initializeApp(getApplicationContext()); 

ラインを呼び出す必要がありますか?

onCreate()最初のアクティビティまたはアプリケーションクラスの方法。あなたのコードを簡素化するために

+0

これは実際の解決策ですが、あなたはコメントが好きだと言っています。 –

+0

このコードを追加する必要がある場所を明確にしてください。 –

+0

最初のアクティビティまたはアプリケーションクラスのonCreate()メソッド。 – nsevim

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()方法で必要とされます。

関連する問題