Java 此代码中的child()错误中的参数“pathString”无法传递null
我最近将firebase数据库订单更改为Location,我知道我在那里或这里遗漏了一些内容,但我无法准确找到问题所在。有人能指出我做错了什么吗 这就是错误所在 2020-03-07 13:26:52.952 32564-32571/? E/zygote:向调试器发送答复失败:管道断开 2020-03-07 13:26:54.048 32564-32620/com.example.policyEmergencySystem E/EGLCodeCommon:glUtilsParamSize:unknow参数0x000082da 2020-03-07 13:26:54.048 32564-32620/com.example.policyEmergencySystem E/EGLCodeCommon:glUtilsParamSize:unknow参数0x000082da 2020-03-07 13:27:09.533 32564-32564/? E/AndroidRuntime:致命异常:主 进程:com.example.policyEmergencySystem,PID:32564 java.lang.RuntimeException:无法启动活动组件信息{com.example.policeemergencysystem/com.example.policeemergencysystem.AdminViewMapsActivity}:java.lang.NullPointerException:无法为子级中的参数“pathString”传递null 在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2817 位于android.app.ActivityThread.handleLaunchActivityActivityRead.java:2892 位于android.app.ActivityThread.-wrap11未知来源:0 在android.app.ActivityThread$H.handleMessageActivityThread.java:1593 位于android.os.Handler.dispatchMessageHandler.java:105 在android.os.Looper.Looper.java:164 在android.app.ActivityThread.mainActivityThread.java:6541 在java.lang.reflect.Method.Invokenactive方法中 在com.android.internal.os.Zygote$MethodAndArgsCaller.runZygote.java:240 位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:767 原因:java.lang.NullPointerException:无法为子级中的参数“pathString”传递null 在com.google.firebase.database.DatabaseReference.childcom.google.firebase:firebase数据库@@19.2.1:96 位于com.example.policyEmergencySystem.AdminViewMapsActivity.onCreateAdminViewMapsActivity.java:38 在android.app.Activity.performCreateActivity.java:6975 在android.app.Instrumentation.callActivityOnCreateInstrumentation.java:1213 在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2770 位于android.app.ActivityThread.handleLaunchActivityActivityRead.java:2892 位于android.app.ActivityThread.-wrap11未知来源:0 在android.app.ActivityThread$H.handleMessageActivityThread.java:1593 位于android.os.Handler.dispatchMessageHandler.java:105 在android.os.Looper.Looper.java:164 在android.app.ActivityThread.mainActivityThread.java:6541 在java.lang.reflect.Method.Invokenactive方法中 在com.android.internal.os.Zygote$MethodAndArgsCaller.runZygote.java:240 位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:767 这是代码Java 此代码中的child()错误中的参数“pathString”无法传递null,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我最近将firebase数据库订单更改为Location,我知道我在那里或这里遗漏了一些内容,但我无法准确找到问题所在。有人能指出我做错了什么吗 这就是错误所在 2020-03-07 13:26:52.952 32564-32571/? E/zygote:向调试器发送答复失败:管道断开 2020-03-07 13:26:54.048 32564-32620/com.example.policyEmergencySystem E/EGLCodeCommon:glUtilsParamSize:unk
package com.example.policeemergencysystem;
import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class AdminViewMapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
DatabaseReference mMaps;
private String userID = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_view_maps);
userID = getIntent().getStringExtra("uid");
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
mMaps = FirebaseDatabase.getInstance().getReference().child("Location").child(userID);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMaps.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
double latitude = dataSnapshot.child("latitude").getValue(Double.class);
double longitude = dataSnapshot.child("longitude").getValue(Double.class);
LatLng latLng = new LatLng(latitude, longitude);
mMap.addMarker(new MarkerOptions().position(latLng).title("Location"));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(latLng)
.zoom(12).build();
//Zoom in and animate the camera.
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
这就是我的firebase数据库的外观
您的数据库显示没有uid,只有硬编码的管理员名称
mMaps = FirebaseDatabase.getInstance().getReference().child("Location").child("admin");
使用以上数据库参考。有许多用户。在所有用户获得登录后,他们会标记自己的位置,然后进入firebase数据库。而且,有这么多管理员,管理员必须能够看到用户的位置。如果我运行您在上面发布的代码,会发生这种情况吗???您添加的数据库我发布了该问题的答案