Firestore C#:缺少或权限不足

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

我目前正在探索Firebase在C#中的云Firestore,遇到了一个在搜索后无法解决的错误。似乎C#中Firestore的资源非常有限:

"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(从现在起,为了测试起见)。我还确保了authentication
json
文件是本文建议的从googledeveloper控制台生成的正确文件

有什么我遗漏的吗

编辑: 我在谷歌云控制台上的权限:

这是一个云IAM问题,而不是安全规则问题。您的密钥文件的服务帐户似乎没有正确的IAM角色,或者您的代码找不到您的密钥文件

尝试使用密钥文件的完整路径而不是相对路径

您还可以尝试设置一个新的服务帐户和密钥文件,如下所述

另外,请确保您正在更改
项目
变量:

string project = "NewFirebaseCsharpTest";

FirestoreDb db = FirestoreDb.Create(project);

请检查您添加的项目ID。
ProjectID应该是json文件中指定的项目。

我应该在控制台上寻找什么?我按照说明设置了新的服务帐户密钥,并尝试了密钥文件的完整路径,但仍然抛出相同的错误。在IAM中,我只能看到我的电子邮件和我作为所有者的角色。我遗漏了什么?我还在谷歌云控制台上看到的内容上添加了一个图像。请告诉我我错过了什么。ThanksIAM许可看起来不错。确保使用您的项目ID更新
项目
变量。更新了我的答案。我无法使用该ID,因为它在Firestore上不可用。我已经在Firestore上使用了Projectd,但仍然无法进一步。我也有同样的问题,你找到解决方案了吗?