Приложение Android Studio останавливается при доступе к локации из базы - PullRequest
0 голосов
/ 21 октября 2018

Текущая страница активности принимает идентификатор пользователя из предыдущей активности, ищет соответствующего пользователя и отмечает его местоположение на карте.

Нет ошибок компиляции.Приложение вылетает всякий раз, когда я получаю доступ к этому действию в мобильном телефоне.

public class map extends FragmentActivity implements OnMapReadyCallback {
private String UserID;
private GoogleMap mMap;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private studetails stu;

//private LocationListener Locationlistener;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    UserID = getIntent().getExtras().getString("UserId");
    DocumentReference doc = db.collection("Userdetails").document(UserID);
    doc.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {
            stu = documentSnapshot.toObject(studetails.class);
        }
    });

    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);

    //ActivityCompat.requestPermissions( activity: this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PackageManager.PERMISSION_GRANTED);
    //ActivityCompat.requestPermissions( activity: this,new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PackageManager.PERMISSION_GRANTED);
}


@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    Location loc;
    loc = stu.getlocation();
    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(loc.getLatitude(), loc.getLongitude());
    mMap.addMarker(new MarkerOptions().position(sydney).title("Busstop"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}

}

Пользовательский объект, используемый для отправки данных в хранилище

Я новичокна android-studio, если я пропустил какую-либо соответствующую информацию, пожалуйста, укажите ее ниже.

Структура базы данных

Часть файла журнала до сбоя приложения

1 Ответ

0 голосов
/ 23 октября 2018

Согласно вашему журналу, FirebaseApp is not initialized in this process.Я подозреваю, что эта строка вызывает ваши проблемы:

FirebaseFirestore db = FirebaseFirestore.getInstance();

Как и при создании экземпляра класса, он автоматически пытается получить экземпляр Firestore по умолчанию, даже если FirebaseApp не был правильно настроен.

Не инициализируйте db в объявлении, скорее, отложите до onCreate, особенно после того, как вы позвонили FirebaseApp.initializeApp(this)

...