当我实现使用Geo fire移除位置()从表中移除位置的代码时,应用崩溃。我正在使用Java Android Studio。
我尝试使用<component :is="'h'+someCondition">MY TITLE</component>
语句代替if
仍然崩溃。
case
最终结果应该是使用Firebase数据库从表中删除了用户ID。
我得到的错误如下
public void onLocationChanged(Location location) {
if(getApplicationContext()!=null) {
mLastLocation = location;
// we get our location
latLng = new LatLng(location.getLatitude(), location.getLongitude());
//to make the camera update users location
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference refAvailable = FirebaseDatabase.getInstance().getReference("postAvailable");
DatabaseReference refWorking = FirebaseDatabase.getInstance().getReference("postsWorking");
GeoFire geoFireAvailable = new GeoFire(refAvailable);
GeoFire geoFireWorking = new GeoFire(refWorking);
switch (clientId) {
case "":
geoFireWorking.removeLocation(userId);
geoFireAvailable.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()), new GeoFire.CompletionListener() {
@Override
public void onComplete(String userId, DatabaseError error) {
Toast.makeText(PostMapActivity.this, "you are available for work ", Toast.LENGTH_LONG).show();
//Do some stuff if you want
}
});
break;
default:
geoFireAvailable.removeLocation(userId);
geoFireWorking.setLocation(userId, new GeoLocation(location.getLatitude(), location.getLongitude()), new GeoFire.CompletionListener() {
@Override
public void onComplete(String userId, DatabaseError error) {
//Do some stuff if you want
}
});
break;
}
}
}
答案 0 :(得分:0)
我从SimCoder识别了此代码。我尝试过,它也可以与“如果”一起使用。 但是我也面临崩溃,但就我而言,只是我在grad:中的Build:app中实现了“ GeoFire-Java”,而不是“ Geofire-android”存储库。看看是否有帮助。
如果没有,我建议您检查声明的全局变量(即clientId)以及它们是否与代码一致。 无论哪种方式,如果您的代码引起问题或实现GeoFore,则位于“ If / Switch”之前和之后调用geoFire的调试模式下的断点都可以解决。
答案 1 :(得分:0)
我遵循了Yash Trivedi在这篇文章中的回答,并更改了我对
build.gradle
(模块:***)
来自:
implementation 'com.firebase:geofire-java:3.0.0'
至:
implementation 'com.firebase:geofire-android:3.0.0'
现在可以正常使用