2017-09-18 1 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"는 루트의 첫 번째 하위 항목입니다. 어쨌든이 문장에서 응용 프로그램이 충돌합니다 :'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() 방법이 필요하다.

관련 문제