Как выделить текущий ключевой узел в xamarin с помощью firebase?

# #database #firebase #xamarin

Вопрос:

Я работаю с Xamarin и FireBase, у меня следующая проблема:

У меня есть пользователи в моей базе данных, и у каждого из них есть список элементов. Мне нужно получить список элементов текущего пользователя, и проблема в том, что я не знаю, как заменить ключ каждого пользователя в дереве (я просто жестко написал его). Это фрагмент :

 var products = (await client.Child("Users").Child("-MXf6T19md1UOTVvHWRU").Child("Items")
                .OnceAsync<Item>())
                .Select(f => new Item
                { . . .
 

Вот изображение дерева базы данных.

Как мне заменить Дочерний элемент(«-MXf6T19md1UOTVvHWRU») на текущую ветвь, в которой я нахожусь?, принимая во внимание, что рядом с этим я должен получить доступ к другому дочернему элементу. Конечно, у меня есть доступ к значению имени пользователя, которое хранится в настройках.

Я был бы признателен за некоторое просвещение, заранее спасибо.

Ответ №1:

Мне нужно получить список элементов текущего пользователя, и проблема в том, что я не знаю, как заменить ключ каждого пользователя в дереве (я просто жестко написал его).

Вы можете использовать приведенный ниже код, чтобы сначала получить все товары, а затем получить конкретный товар.

  public async Task<List<User>> GetAllUsers()
    {

        return (await firebase
          .Child("Users")
          .OnceAsync<User>()).Select(item => new User
          {
              Name = item.Object.Name,
              UserId = item.Object.UserId,
          }).ToList();
    }

public async Task<User> GetUser(int userId)
    {
        var allUsers = await GetAllUsers();
        await firebase
          .Child("Users")
          .OnceAsync<User>();
        return allUsers.Where(a => a.UserId == userId).FirstOrDefault();
    }
 

Модель:

  public class User
{
    public int UserId { get; set; }
    public string Name { get; set; }
}
 

Вы можете загрузить аналогичный исходный код с GitHub.
https://github.com/susairajs/Xamarin-Firebase-RealtimeDatabase