You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Firebase报错Can't pass null for argument 'pathString' in child()求助

问题根因

你的崩溃是三个逻辑错误共同导致的:

  • 实例化的Usuario对象未初始化id字段:你在MapsActivity中直接调用new Usuario()创建实例后,没有调用setId()给id字段赋值,调用usuario.recuperarId()时,方法内部执行getId()返回的就是null,传入Firebase的child()方法直接触发空指针异常。
  • recuperarId()方法逻辑完全错误:Firebase数据库的get()操作是异步执行的,你在异步回调还没返回结果的时候就直接返回idSalvo,此时idSalvo还未被赋值,必然返回null。而且该方法本身设计多余,当前登录用户的唯一ID直接从FirebaseAuth就能获取,不需要额外查询实时数据库。
  • 位置保存逻辑顺序错误:你在onMapReady中直接调用localizacao.salvarLocalizacao()时,用户位置还未通过定位回调拿到,就算id问题解决了,也会出现经纬度为空的问题。
修复方案

1. 移除冗余逻辑

删掉Usuario类中没用的recuperarId()方法,该逻辑完全没有存在必要。

2. 直接从FirebaseAuth获取用户ID

当前已登录用户的唯一ID直接通过FirebaseAuth实例获取即可,不需要查询数据库,修改MapsActivity的onMapReady方法如下:

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    // 先校验用户登录状态,未登录直接返回
    FirebaseUser currentUser = autenticacao.getCurrentUser();
    if(currentUser == null){
        finish();
        return;
    }
    // 直接获取登录用户uid赋值
    localizacao.setId(currentUser.getUid());
    // 启动定位
    recuperarLocalizacaoUsuario();
}

3. 调整位置保存的触发时机

在定位成功的回调里执行位置保存操作,保证经纬度有值,修改recuperarLocalizacaoUsuario方法里的onLocationChanged逻辑:

@Override
public void onLocationChanged(@NonNull Location location) {
    double latitude = location.getLatitude();
    double longitude = location.getLongitude();
    localizacaoAtual = new LatLng(latitude, longitude);

    localizacao.setLatitude(String.valueOf(localizacaoAtual.latitude));
    localizacao.setLongitude(String.valueOf(localizacaoAtual.longitude));
    // 新增:定位成功后再保存位置信息
    localizacao.salvarLocalizacao();

    clicarMapa();
    mMap.clear();
    mMap.addMarker(
            new MarkerOptions()
                    .position(localizacaoAtual)
                    .title("Meu local")
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.usuario))
    );
    mMap.moveCamera(
            CameraUpdateFactory.newLatLngZoom(localizacaoAtual, 15)
    );
}

修改完成后即可解决崩溃问题。

内容的提问来源于stack exchange,提问作者X MrZaq X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:54:02