Я борюсь с этой проблемой уже несколько дней, и я не добиваюсь большого прогресса, любая помощь будет оценена. Я новичок в FireStore, но мне действительно нравятся возможности, которые он предлагает. Мне успешно удалось получить базовые c документы из Android и iOS приложений, используя Plugin.CloudFirestore и Xamarin.Forms.
Однако мне нужны некоторые фоновые сервисы, такие как настройка данных и т. Д. c, и я должен иметь возможность подключаться к FireStore через обычное старое C# настольное приложение. Поэтому я следовал краткому руководству по началу работы, Nuget'ed Google.Cloud.Firestore, установил переменную среды, и независимо от того, как я пробую код, я получаю «PERMISSION_DENIED: отсутствуют или недостаточны разрешения».
Некоторые детали, я Я использую учетную запись службы с разрешениями владельца проекта и еще не изменила правила доступа по умолчанию. Я знаю, что переменная окружения настроена правильно, и файл найден. Все пакеты самые последние. Расстраиваю, что мои приложения для iOS / Android работают, но это не так, я ожидал больше проблем с мобильными приложениями. Поскольку я все еще изучаю все это только в модульном тесте, я могу довольно быстро выполнить и изменить код.
Помощь будет очень полезна, прежде чем я начну стучать головой по столу: -)
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Task<string> task = Task.Run<string>(async () => await GetUserName());
var x = task.Result;
return ;
}
private async Task<string> GetUserName()
{
string projectId = "matchesJson";
FirestoreDb db = FirestoreDb.Create(projectId);
string retVal = "";
try
{
CollectionReference col = db.Collection("users");
// Exception thrown on next line
QuerySnapshot snapshot = await col.GetSnapshotAsync();
// get some data
retVal = "";
}
catch (Exception e)
{
retVal = e.Message;
}
return retVal;
}
}
---- РЕДАКТИРОВАТЬ ПРАВИЛА ДОБАВЛЕНИЯ ------- - Сегодня 3 марта 2020 г. -
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// This rule allows anyone on the internet to view, edit, and delete
// all data in your Firestore database. It is useful for getting
// started, but it is configured to expire after 30 days because it
// leaves your app open to attackers. At that time, all client
// requests to your Firestore database will be denied.
//
// Make sure to write security rules for your app before that time, or else
// your app will lose access to your Firestore database
match /{document=**} {
allow read, write: if request.time < timestamp.date(2020, 3, 28);
}
}
}