Can';t从C#.NET核心应用程序连接Firebase云Firestore

Can';t从C#.NET核心应用程序连接Firebase云Firestore,c#,firebase,google-cloud-firestore,C#,Firebase,Google Cloud Firestore,我正在尝试设置一个非常简单的测试应用程序,用于连接到我的Firebase Cloud Firestore实例 这是一个在Windows7上使用.NETCore3.0的C#.NETCore控制台应用程序 我正在尝试使用我的项目名称连接到我的Firestore实例 我的GOOGLE\u APPLICATION\u CREDENTIALS环境变量设置为C:\test\creds.json,这是我使用GCP控制台页面上的“创建密钥”功能为默认服务帐户创建的 运行下面的代码时,出现以下错误: using

我正在尝试设置一个非常简单的测试应用程序,用于连接到我的Firebase Cloud Firestore实例

这是一个在Windows7上使用.NETCore3.0的C#.NETCore控制台应用程序

我正在尝试使用我的项目名称连接到我的Firestore实例

我的
GOOGLE\u APPLICATION\u CREDENTIALS
环境变量设置为
C:\test\creds.json
,这是我使用GCP控制台页面上的“创建密钥”功能为默认服务帐户创建的

运行下面的代码时,出现以下错误:

using Google.Cloud.Firestore;
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            FirestoreDb db = FirestoreDb.Create("my-proj-id");
        }
    }
}
例外情况:

应用程序默认凭据不可用。他们是 如果在Google计算引擎中运行,则可用。否则 必须定义环境变量GOOGLE\u应用程序\u凭据 指向定义凭据的文件。看见 了解更多信息。”

当我运行ProcessMonitor来检测文件系统活动时,我的应用程序甚至从未尝试触摸
creds.json
文件,这让我相信C#Cloud Firestore API甚至没有找到我的creds文件。我已经在用户和系统级别设置了
GOOGLE\u应用程序\u凭据
env变量


我的配置方式有问题吗?

这真让人恼火。我试图在我的应用程序中记录GOOGLE\u APPLICATION\u CREDENTIALS环境变量值,该值为
null
。我重新启动了VisualStudio,它开始工作了。我的理论是,VS在启动调试器进程时将当前环境传递给被调试器对象,或者它可能使用其中一个Visual Studio调试器主机代理进程进行调试,并在我重新启动IDE后重新启动。有时,Visual Studio正在运行的环境可能与Windows中的路径环境变量。我认为这与管理员权限有关。以管理员身份打开VisualStudio,执行任务和GOOGLE_应用程序_凭据分配会很有趣


似乎这种行为是意料之中的

您是如何获得
GOOGLE\u应用程序\u凭据的
?你能记录这个
string value=Environment.GetEnvironmentVariable(“GOOGLE_应用程序_凭据”);
我没有读取环境变量。根据这个链接(),在你的开发人员环境中,你只需将GOOGLE_应用程序_凭据设置到密钥文件位置,就可以验证任何请求。@LinkedList仅供参考,在powershell中”[System.Environment]::GetEnvironmentVariable(“GOOGLE_应用程序_凭据”)“生成指向我的creds文件的正确路径您是否实际作为该用户运行?(我们没有您如何运行该文件的上下文。)我很困惑。这是Windows上的.NET Core 3.0控制台应用程序。我以域用户身份登录Windows,不确定这是否重要。Google开发者文档说要从Google云控制台创建一个安全密钥(JSON文件-c:\test\creds.JSON)。我为“app Engine默认服务帐户”创建了一个密钥,列为GCP控制台中的服务帐户。我将GOOGLE\u应用程序\u凭据设置为“c:\test\creds.json”根据Google文档。当我尝试从C#访问我的实例时,它基本上说找不到Cred,但我看不到C:\temp\creds.jsi的磁盘活动。我认为这与我的应用程序从Visual Studio继承环境变量一样简单。如果在设置环境变量之前启动Visual Studio,则需要重新启动t VisualStudio来获取更改。