REST API базы данных Firebase Realtime возвращает «Неавторизованный», даже с токеномC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 REST API базы данных Firebase Realtime возвращает «Неавторизованный», даже с токеном

Сообщение Anonymous »

Я пишу серверное приложение Blazor, которое подключается к базе данных Firebase Realtime. Я использую FirebaseDatabase SDK, но мне нужно выполнить набор атомарных операций, обновляющих несколько путей. Поскольку в SDK нет метода для этого, я решил использовать REST API.
Я уже могу пройти аутентификацию по электронной почте/паролю, что дает мне доступ к currentUser. GetIdTokenAsync();
Я могу читать/записывать данные при выполнении отдельных операций Put/Patch.
Но когда я пытаюсь обновить пути с использованием REST API, он не сообщает: «Неавторизованный».
Чтобы проверить это, я написал простой код ниже:

Код: Выделить всё

public async Task singleUpdate(string idPropriedade, string idLote, string novoNome)
{
// Firebase database URL
string firebaseUrl = DatabaseProjectSettings.projectURL;

// Define the updates for each path
string jsonContent =
"{" +
"\"lotes\": {" +
"\"" + idPropriedade + "\": {" +
"\"" + idLote + "\": {" +
"\"nomePropriedade\": \"" + novoNome + "\"" +
"}" +
"}" +
"}" +
"}";

var token = await _currUser.GetIdTokenAsync(true);

// Create HttpClient instance
using (HttpClient client = new HttpClient())
{
// Configure the request
HttpRequestMessage request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri($"{firebaseUrl}.json"),
Content = new StringContent(jsonContent, System.Text.Encoding.UTF8, "application/json")
};
request.Headers.Add("Authorization", $"Bearer {token}");

// Send the request and get the response
HttpResponseMessage response = await client.SendAsync(request);

// Check if the request was successful
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Paths updated successfully.");
}
else
{
Console.WriteLine($"Failed to update paths. Status code: {response.StatusCode}");
}
}
}
Если я удалю правила базы данных, операция записи будет работать нормально. Если я выйду из правил базы данных, я получу сообщение «Неавторизовано».
Я уже протестировал использование токена в URL-адресе следующим образом, используя как «auth», так и «access_token»: RequestUri = new Uri($"{firebaseUrl}.json?access_token={token}"), безуспешно!
Это ответ в VStudio:
Изображение

Пожалуйста, пришлите мне ваши идеи! Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/783 ... with-token
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»