早上好我正在开发一个net maui应用程序,但我遇到了以下问题:在windows上它工作得很完美,在mac上我无法连接到数据库,因为我无法跟踪与firebase凭据的文件。
string basePath = AppDomain.CurrentDomain.BaseDirectory;
string credentialsPath = Path.Combine(basePath, "giogo-dee69-firebase-adminsdk-fsksp-1cf7a95106.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", credentialsPath);
try
{
FirestoreDb db = FirestoreDb.Create("giogo-dee69");
DocumentReference coll = db.Collection("NomeCollezione").Document("Capoccione");
Modello DaInserire = new Modello();
DaInserire.Username = "Picciotto";
DaInserire.NumeroCapelli = 19;
await coll.SetAsync(DaInserire);
}
catch (Exception ex)
{
Console.WriteLine("Errore di connessione a Firestore: " + ex.Message);
}
The result:TestFirebase[1325:25275] Firestore错误:从位置/Users/**************/Projects/TestFirebase/TestFirebase/bin/Debug/net7.0-maccatalyst/maccatalyst-x64/TestFirebase.app/Contents/MonoBundle/giogo-dee 69-firebase-adminsdk-fsksp-1cf7a95106.json阅读凭据文件时出错:无法找到文件“/Users/*************/Projects/TestFirebase/TestFirebase/bin/Debug/net7.0-maccatalyst/maccatalyst-x64/TestFirebase.app/Contents/MonoBundle/giogo-dee 69-firebase-adminsdk-fsksp-1cf7a95106.json”。
TestFirebase[1325:25275]请检查环境变量GOOGLE_APPLICATION_CREDENTIALS的值。
我不明白它是否在编译时不复制文件(Windows是这样做的,macOS不是),或者找到文件夹的方法是错误的。感谢所有能帮助我的人。
1条答案
按热度按时间vxf3dgd41#
这与这个问题类似:SetEnvironmentVariable for GOOGLE_APPLICATION_CREDENTIALS works on windows but give error on android.和mattleibow的评论给出了一个跨平台的解决方案,可能会有所帮助。
首先,在Raw子文件夹中设置凭据文件,并设置属性“MauiAsset”和“copy if new”。
然后在运行时读取文件并存储在临时文件夹或任何其他文件夹中:
另外,使用
dest.Close();
作为MahmoudAlEssawi注解。然后您可以在新路径中找到凭据文件,我们可以读取它。
希望能成功!