You need to enable JavaScript to run this app. 如何修复Android开发中出现的“Could not reach Cloud Firestore Backend”错误?
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Android开发中出现的“Could not reach Cloud Firestore Backend”错误?

问题排查与解决方案

  • 第一步:排查安卓虚拟设备(AVD)网络可用性
    先打开AVD内置浏览器,访问任意公网网站验证网络是否真的可用。AVD显示Wifi满格不代表实际能连通公网,多数是宿主设备开启了VPN、全局代理导致AVD网络异常,关闭宿主的VPN/代理后重启AVD重试即可。
  • 第二步:检查应用网络权限配置
    确认AndroidManifest.xml中已添加必要的网络权限,缺少权限会导致无法连接后端:
    <!-- 必须的网络访问权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 可选,用于检测网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • 第三步:核对Firebase项目配置
    1. 确认google-services.json文件是从Firebase控制台对应项目下载的最新版本,且已放在app模块的根目录下
    2. 检查Firestore安全规则,默认新建的Firestore仅允许已认证用户访问,若你未实现用户认证逻辑,测试阶段可临时将规则调整为允许公开访问(正式上线前务必修改为符合业务的安全规则):
    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if true;
        }
      }
    }
    
  • 第四步:补充代码异常监听定位具体错误
    你当前仅添加了成功回调,缺少失败回调无法拿到具体错误信息,建议补充OnFailureListener打印异常详情,同时可指定强制从服务端拉取数据,避免本地缓存干扰,示例修改后代码如下:
    DocumentReference mDocRef = FirebaseFirestore.getInstance().document(document_path);
    // 强制从服务端获取数据
    mDocRef.get(Source.SERVER)
            .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                @Override
                public void onSuccess(DocumentSnapshot documentSnapshot){
                    if(documentSnapshot.exists()){
                        int Rent_amount = (int) documentSnapshot.get(Rent);
                        int Food_amount = (int) documentSnapshot.get(Food);
                        int Bills_amount = (int) documentSnapshot.get(Bills);
    
                        TextView Rent_test = (TextView) findViewById(R.id.rent_view);
                        Rent_test.setText(String.valueOf(Rent_amount));
    
                        TextView Food_test = (TextView) findViewById(R.id.Food_view);
                        Food_test.setText(String.valueOf(Food_amount));
    
                        TextView Bills_test = (TextView) findViewById(R.id.Bills_view);
                        Bills_test.setText(String.valueOf(Bills_amount));
                    }
                }
            })
            // 补充失败回调打印异常详情
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.e("FirestoreError", "获取数据失败", e);
                }
            });
    

内容的提问来源于stack exchange,提问作者GitHub CSC3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 08:06:08