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

Xamarin Forms连接Firestore失败:Bad gRPC response问题解决

问题描述

我尝试使用Firebase官方文档中的代码在后端创建数据,代码如下:

var db = FirestoreDb.Create("interiorcircle");

DocumentReference docRef = db.Collection("users").Document("alovelace");
Dictionary<string, object> user = new Dictionary<string, object>
{
    { "First", "Ada" },
    { "Last", "Lovelace" },
    { "Born", 1815 }
};
await docRef.SetAsync(user);

已配置环境变量且可建立连接,但调用SetAsync方法时出现错误:

Bad gRPC response. Response protocol downgraded to HTTP/1.1.
解决方法
  • 强制使用REST API替代gRPC:初始化FirestoreDb时配置使用REST传输,绕开gRPC的协议兼容性问题。修改后的初始化代码如下:
var settings = new FirestoreSettings
{
    UseRestApi = true
};
var db = FirestoreDb.Create("interiorcircle", settings);
  • 排查网络环境限制:部分服务器、防火墙或代理会拦截HTTP/2协议的gRPC请求,确认所在环境是否允许HTTP/2流量。若为代理问题,需调整代理规则放行gRPC相关请求。
  • 更新Firestore SDK包:旧版本的Google.Cloud.Firestore NuGet包可能存在协议降级的已知bug,将包更新至最新稳定版本即可修复。
  • 手动指定API端点:强制指定Firestore的REST端点,避免自动协议切换失败:
var settings = new FirestoreSettings
{
    Endpoint = "https://firestore.googleapis.com"
};
var db = FirestoreDb.Create("interiorcircle", settings);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:39:17