Firestore C#:缺少或权限不足
我目前正在探索Firebase在C#中的云Firestore,遇到了一个在搜索后无法解决的错误。似乎C#中Firestore的资源非常有限:Firestore C#:缺少或权限不足,c#,firebase,google-cloud-firestore,C#,Firebase,Google Cloud Firestore,我目前正在探索Firebase在C#中的云Firestore,遇到了一个在搜索后无法解决的错误。似乎C#中Firestore的资源非常有限: "Status(StatusCode=PermissionDenied, Detail=\"Missing or insufficient permissions.\")" 到目前为止,我的代码是: class Program { static void Main(string[] args) { Console.Writ
"Status(StatusCode=PermissionDenied, Detail=\"Missing or insufficient permissions.\")"
到目前为止,我的代码是:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "FirebaseCsharpTest.json");
string project = "MyProjectId";
FirestoreDb db = FirestoreDb.Create(project);
Console.WriteLine("Created Cloud Firestore client with project ID: {0}", project);
AddPerson(db).GetAwaiter().GetResult();
}
public static async Task AddPerson(FirestoreDb db)
{
CollectionReference collection = db.Collection("users");
DocumentReference document = await collection.AddAsync(new
{
Name = new
{ First = "Ada", Last = "Lovelace" },
Born = 1815
});
}
}
我已经在我的Firebase控制台上检查了Firestore安全规则是否设置为public(从现在起,为了测试起见)。我还确保了authenticationjson
文件是本文建议的从googledeveloper控制台生成的正确文件
有什么我遗漏的吗
编辑:
我在谷歌云控制台上的权限:
这是一个云IAM问题,而不是安全规则问题。您的密钥文件的服务帐户似乎没有正确的IAM角色,或者您的代码找不到您的密钥文件 尝试使用密钥文件的完整路径而不是相对路径 您还可以尝试设置一个新的服务帐户和密钥文件,如下所述 另外,请确保您正在更改
项目
变量:
string project = "NewFirebaseCsharpTest";
FirestoreDb db = FirestoreDb.Create(project);
请检查您添加的项目ID。
ProjectID应该是json文件中指定的项目。我应该在控制台上寻找什么?我按照说明设置了新的服务帐户密钥,并尝试了密钥文件的完整路径,但仍然抛出相同的错误。在IAM中,我只能看到我的电子邮件和我作为所有者的角色。我遗漏了什么?我还在谷歌云控制台上看到的内容上添加了一个图像。请告诉我我错过了什么。ThanksIAM许可看起来不错。确保使用您的项目ID更新
项目
变量。更新了我的答案。我无法使用该ID,因为它在Firestore上不可用。我已经在Firestore上使用了Projectd,但仍然无法进一步。我也有同样的问题,你找到解决方案了吗?