C# Firestore应用单台设备报Grpc.Core.RpcException未授权错误求助
解决Firestore C#应用单台电脑认证失败问题
针对你遇到的单台电脑出现Unauthenticated认证错误的情况,可按以下步骤排查解决:
1. 修复代码中密钥文件未使用的问题
你的代码定义了firebase.json路径但未传入Firestore初始化逻辑,导致应用可能依赖系统默认认证,而该电脑的默认认证配置异常。修改代码强制指定服务账号密钥:
string path = AppDomain.CurrentDomain.BaseDirectory + @"data\firebase.json"; var credential = GoogleCredential.FromFile(path); var db = new FirestoreDbBuilder { ProjectId = "aestest-3e45c", Credential = credential }.Build(); CollectionReference usersRef = db.Collection("users"); // 后续更新逻辑保持不变 Google.Cloud.Firestore.DocumentReference userRef = usersRef.Document(uuid); Dictionary<string, object> updates = new Dictionary<string, object> { { "uuid", uuid } }; await userRef.UpdateAsync(updates);
2. 检查密钥文件的完整性与权限
- 对比这台电脑上的
firebase.json和其他正常电脑的文件,确保内容完全一致,无损坏或字符缺失。 - 右键该文件 → 属性 → 安全,给当前运行应用的用户添加读取权限,避免系统重装后权限继承异常导致无法读取密钥。
3. 清除系统级认证冲突
- 检查系统环境变量是否存在
GOOGLE_APPLICATION_CREDENTIALS,若存在,确认其指向的文件有效,或直接删除该变量,强制应用使用代码指定的密钥。 - 若安装过Google Cloud SDK,打开命令提示符执行
gcloud auth revoke --all清除本地缓存的Google账号认证,避免和服务账号认证冲突。
4. 排查网络与安全软件拦截
- 暂时关闭该电脑的本地防火墙、杀毒软件等安全工具,测试应用是否正常运行,排查是否有认证请求被拦截。
- 确认该电脑的代理设置和其他正常电脑一致,若有单独代理配置,暂时关闭代理测试。
内容的提问来源于stack exchange,提问作者verybusy
相关产品推荐
相关产品推荐

