我正在尝试使用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中运行此应用程序时,它都会崩溃。
答案 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()
方法需要所有这些行。