使用Firestore-Firebase服务帐户进行身份验证时出错

时间:2019-08-19 17:39:29

标签: c# firebase firebase-authentication

这个问题来自this other one,总结了我正在尝试在桌面C#应用程序中连接到Google Firebase。

我终于放弃了oAuth身份验证,并使用了一个服务帐户,就像文档中指出的那样:

    public async Task ConnectDB(GoogleLogin.GoogleOAuthState oAuthState)
    {
        Environment.SetEnvironmentVariable("GCLOUD_PROJECT", "DriveMJConta");
        Environment.SetEnvironmentVariable(
            "GOOGLE_APPLICATION_CREDENTIALS",
            System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Resources/MyServiceAccountJson.json"));
        _DB = FirestoreDb.Create(Properties.Settings.Default.FirebaseProjectName);//, client);
    }

验证时没有错误,但是当我尝试对数据库进行操作时,抛出此错误:

  

错误:Status(StatusCode = NotFound,Detail =“该项目DriveMJConta不存在或不包含活动的Cloud Datastore或Cloud Firestore数据库。请访问http://console.cloud.google.com以创建项目或{{3} } ...添加Cloud Datastore或Cloud Firestore数据库。请注意,Cloud Datastore或Cloud Firestore始终具有关联的App Engine应用程序,并且不得禁用此应用程序。“)

好,让我们开始“检查”:

  • 该项目确实存在,并出现在所有google网络控制台中,我 连接到谷歌驱动器没有任何问题。选中。

  • 数据库确实存在,我在谷歌浏览器中有一个带有 相同项目的Firebase控制台(它出现在 Google云端平台控制台,用于Firestore中的同一项目 标签),其中包含规则,根集合,服务帐户以及其他内容 不。选中。

  • 在Google控制台中显示数据库的服务帐户,密钥和 没什么选中。

  • 添加了Firebase / firestore api(或已稳定化或其他任何版本) 在项目的Google控制台和项目的google中调用它) 云平台控制台。选中。

  • APP引擎已创建(无论其含义和作用),并且 工作。选中。

我不明白这件事。我一直在想,自一开始以来我就在做着非常错误的事情,而通过3个不同的Web控制台进行潜水对于一个小项目来说会花费太多时间。

最奇怪的是,在Firebase控制台的配置中,有一些按钮可以向项目“添加应用”。我真的对此感到困惑: Google apis控制台,firebase控制台和google cloud控制台之间共享着一个类似“常规”项目的东西,可以从每个页面顶部的下拉控件中进行选择。在google API控制台中,我有一个适用于我的应用程序的oAuth凭据,但是由于在firebase控制台中,我可以添加一个应用程序... google apis控制台中发生了什么?同一项目可以有多个应用程序?此外,没有用于桌面应用程序的按钮。但是,但是Google控制台的oauth ID可以与Firebase应用一起使用吗?如果我只能使用(据说)可以由我做的任何“事物”使用的服务帐户登录,为什么firebase需要“添加”一个应用程序?更重要的是:在Google Cloud Platform控制台中,有一些标签执行的功能与其他两个控制台相同:f.i。 firebase选项卡中的更改反映在firebase控制台中,google cloud控制台中的凭据与简单google apis控制台中的凭据相同。

我不知道,我只是不想使用SQL数据库,因为我的项目太少了,我必须使用google电子表格和google驱动器,所以乍一看似乎是完美的解决方案...现在我在想我应该添加一个图层来管理从Google驱动器下载和上传json文件的数据。

那么...两个问题:我如何从c#桌面应用程序连接到firebase?

为一个小项目处理所有Google Web控制台而不是“硬”方式(将所有对象另存为Json在Google驱动器中或类似文件中)真的值得吗?

0 个答案:

没有答案