Firebase realtime database android studio

База данных Firebase RealTime с операциями в Android с примерами

База данных Firebase Realtime — это база данных, размещенная в облаке, т.е. она работает в облаке, и доступ к ней предоставляется как услуга. Он хранит данные в формате JSON (Javascript Object Notation) , формат для хранения или транспортировки данных. Все подключенные к нему пользователи могут получить доступ к данным в режиме реального времени.

Особенности базы данных Firebase Realtime?

  1. Реальное время : благодаря синхронизации данных, используемой в реальном времени, каждое обновление принимается устройствами / клиентами в кратчайшие сроки.
  2. Сервер приложений не требуется . Поскольку доступ к базе данных возможен непосредственно с мобильного устройства или браузера, сервер приложений не требуется.
  3. Поддержка различными языками и платформами :

  • Разделение данных : клиент может разделить данные между несколькими экземплярами базы данных для одного и того же проекта.
  • Код на стороне клиента : динамические приложения с защищенными данными могут быть доступны непосредственно из кода на стороне клиента.
  • Кроссплатформенность : его можно использовать для создания серверной части для различных платформ, таких как Android, iOS, Web, iOS, а также JavaScript SDK.
  • Структурирование базы данных в реальном времени:

    База данных Firebase Realtime хранит данные в виде одного большого дерева JSON . Он легко хранит простые данные, но неструктурированные иерархические данные сложно организовать. В отличие от SQL здесь нет таблиц.

    • Что такое модель дерева JSON?
      Модель дерева JSON основана на JSON (нотации объектов JavaScript), используемой для представления документа JSON, который обычно состоит из пары ключ-значение в памяти.
    • Зачем структурировать данные (в чем преимущества этого)?
      • Если данные хранятся в хорошо отформатированной структуре, их легко сохранить, а также легко получить.
      • Запросы упрощаются для структурированных данных.
      • Становится возможным ссылаться на данные в структурированном формате.
    • Ключевые моменты, которые следует помнить при структурировании данных:

      Перед записью и чтением данных в базу данных основной целью разработчика должно быть построение структуры базы данных.

        Рассмотрим предел вложенности:
        Вложение данных должно быть выполнено надлежащим образом, чтобы его было легко прочитать с помощью Слушателей (Слушатели используются для чтения данных из базы данных). Избегайте ненужного вложения уровней в базу данных. Firebase также позволяет только 32 уровня вложенности.

      В этом примере получение данных по именам пользователей очень сложно, поскольку мы должны получить доступ к дочерним узлам users_info, которые загружают данные, имеющие размеры нескольких МБ (в этом случае загружаются имя, orders_details, адрес и т. Д.).

      Разработка денормализованной формы данных:
      Уплощение данных должно быть сделано правильно, это означает, что данные должны быть разделены на разные части без какой-либо двусмысленности. Обычно это называется денормализацией, где для улучшения производительности чтения мы развиваем избыточность данных.

      В этом примере данные разделяются на user_info и order_deatils. Благодаря этому доступ к данным быстрее и, следовательно, нет необходимости загружать лишние ненужные данные. Здесь получение данных об именах пользователей очень просто, так как мы должны получить доступ к дочерним узлам users_info, которые загружают данные, имеющие только имя и адрес, а детали заказов не обрабатываются.

      Создайте структуру, которая является динамичной в природе:
      Структурирование данных должно быть таким, чтобы оно было масштабируемым. Иногда, чтобы иметь легкий доступ к данным, дублирование должно быть реализовано в базе данных.

      В приведенном выше примере, чтобы легко получить доступ к базе данных, имя доски хранится в информации каждого учащегося, а информация о доске хранит имя учащегося и доску, которую он имеет. Если бы мы не хранили данные под информацией о доске, то было бы сложно собрать имена студентов, имеющих конкретную доску.

      Запись / вставка данных в базу данных Firebase Realtime

      Запись данных в Firebase — очень простая задача. Но перед записью / вставкой данных в базу данных в реальном времени следует выполнить структурирование данных . Вставка или запись данных в базу данных Firebase Realtime выполняется в Android с помощью функции setValue () . Вставка данных в базу данных Firebase Realtime может рассматриваться как одна из операций CRUD.

      setValue (): эта функция используется для:

      • Заменить данные в ссылочной позиции
      • Если в указанной позиции нет данных, данные записываются непосредственно в эту позицию.

      Значение / типы, которые могут быть переданы ему:

      • строка
      • карта
      • Список
      • двойной
      • логический
      • Длинная
      • Пользовательский объект : здесь следует учитывать, что пользовательский объект, имеющий конструктор по умолчанию, также может быть передан в качестве аргумента функции.

      Шаги для записи / вставки данных в базу данных Firebase Realtime:
      Учтите, что мы должны хранить имя пользователя в базе данных

      1. Создать ссылку на базу данных:
      2. Найдите ссылку на данные, где должно храниться значение, с помощью функции child ():
      3. Используйте объект ссылки и функцию setValue () со значением, которое будет сохранено в качестве аргумента, для записи данных:

      Пример 2: Давайте рассмотрим другой пример для сохранения пользовательского объекта в базе данных

      Источник

      Начинаем работать с Firebase на Android

      Для мобильных приложений необходим сервер для выполнения таких задач, как проверка подлинности пользователей и синхронизация пользовательских данных на нескольких устройствах. Однако для создания такого сервера требуется набор навыков, которого не хватает большинству независимых разработчиков приложений. К счастью, есть несколько back-end как сервисных платформ, которые часто называют BaaS, которые вы можете использовать сегодня. Firebase от Google — одна из таких платформ.

      Firebase бесплатно предоставляет такие важные услуги, как аналитика, отчеты о сбоях, аутентификация пользователей и облачные сообщения. Его услуги freemium включают в себя базу данных NoSQL в режиме реального времени, хостинг файлов и статический хостинг веб-сайтов.

      В этом уроке я покажу вам, как добавить аутентификацию пользователей, аналитику и удаленное хранилище данных в приложение Android с помощью Firebase.

      Предпосылки

      Чтобы следовать материалу, вам понадобятся:

      • Android Studio 2.2 RC2 или выше
      • 1. Использование Firebase Analytics

        Firebase Analytics является одним из самых популярных решений для аналитики мобильных приложений, доступных сегодня. Используя его, вы можете получить точное представление о том, кто ваши пользователи и как они используют ваше приложение.

        Шаг 1: Настройка Firebase Analytics

        В последних версиях Android Studio есть встроенная поддержка Firebase Analytics. Это означает, что вы можете добавить Firebase Analytics в свой проект, не покидая Android Studio.

        Чтобы начать интеграцию Firebase Analytics с вашим проектом, нажмите «Сервис»> «Firebase». Вам будет предоставлено следующее окно помощника:

        Нажмите «Аналитика», а затем «Зарегистрировать событие Analytics».

        Теперь вы должны связать свой проект Android Studio с проектом Firebase. Поэтому нажмите кнопку «Подключиться к Firebase».

        В появившемся диалоговом окне вы сможете увидеть все существующие проекты Firebase. Вы можете выбрать один из них или выбрать новый проект. На данный момент я предлагаю вам выбрать вариант «Создать новый проект Firebase» и дать уникальное имя проекту.

        После нажатия кнопки «Подключиться к Firebase», которая находится внутри диалогового окна, Android Studio автоматически выполнит все необходимые изменения конфигурации, такие как создание файла google-services.json и загрузка SHA1.

        Теперь вы можете нажать кнопку Добавить Google Analytics, чтобы добавить плагин Firebase и зависимость Firebase Core к вашему проекту. Android Studio покажет вам точные изменения, которые будут внесены в файлы build.gradle.

        Нажмите «Принять изменения», чтобы завершить настройку.

        Шаг 2: Создание событий Analytics

        После того, как вы настроили Firebase Analytics для своего приложения, вам не нужно писать какой-либо дополнительный код, если вас устраивают только автоматически созданные события аналитики, такие как пользователь, открывающий ваше приложение в первый раз, использование приложения дольше чем 10 секунд, совершение покупки в приложении или удаление приложения. Таким образом, вы можете запустить приложение сейчас — на эмуляторе или на реальном устройстве — и в течение следующих 24 часов вы сможете увидеть журналы аналитики в консоли Firebase.

        Если вы хотите более внимательно проанализировать поведение своих пользователей, вы можете создавать собственные события аналитики вручную, используя метод logEvent() класса FirebaseAnalytics . Метод ожидает два параметра: строку, определяющую имя настраиваемого события, и Bundle , содержащий сведения о событии в виде пар ключ-значение.

        Например, если вы хотите генерировать событие с именем my_custom_event каждый раз, когда пользователь нажимает на определенную кнопку, вам нужно добавить следующий код в обработчик кликов кнопки:

        По большей части пользовательские события неотличимы от автоматически собранных событий в консоли Firebase.

        Обратите внимание, что имена событий чувствительны к регистру. Поэтому рекомендуется определять все имена событий как постоянные строки. Кроме того, вы можете использовать предопределенные константы имен событий, доступные в классе FirebaseAnalytics.Event .

        2. Использование Firebase Auth

        Пользовательская аутентификация является важным требованием для большинства приложений Android сегодня. Имея возможность надежно аутентифицировать своих пользователей и, таким образом, уникально идентифицировать их, вы можете предложить им индивидуальный опыт на основе их интересов и предпочтений. Вы также можете убедиться, что у них нет проблем с доступом к своим личным данным при использовании вашего приложения с нескольких устройств.

        Firebase Auth позволяет вам аутентифицировать пользователей, используя различные механизмы входа. В этом уроке я покажу вам, как разрешить пользователям входить в ваше приложение, используя их адреса электронной почты и пароли.

        Шаг 1: Настройте свой проект

        Чтобы иметь возможность использовать Firebase Auth в вашем проекте Android Studio, вы должны добавить следующую compile зависимость к файлу build.gradle модуля app.

        Шаг 2. Включение проверки подлинности на основе паролей

        По умолчанию Firebase не разрешает аутентификацию пользователя. Таким образом, вы должны вручную включить аутентификацию пользователя на основе пароля в консоли Firebase. Для этого перейдите в раздел Auth и нажмите кнопку «Настройка входа в систему». Теперь вы увидите список всех доступных входных провайдеров.

        Выберите «Электронная почта / Пароль», включите его и нажмите «Сохранить».

        Шаг 3: Поддержка регистрации пользователей

        При аутентификации на основе пароля новые пользователи должны регистрироваться, предоставляя уникальный адрес электронной почты и пароль. Чтобы добавить эту функциональность в свое приложение, вы можете использовать метод createUserWithEmailAndPassword() класса FirebaseAuth . Как следует из названия, метод ожидает, что в качестве аргументов будет указан адрес электронной почты и пароль.

        Чтобы определить результат метода createUserWithEmailAndPassword() , вы должны добавить к нему OnCompleteListener , используя метод addOnCompleteListener() . В следующем фрагменте кода показано, как зарегистрировать нового пользователя, а также сообщить, успешно ли завершен процесс регистрации:

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

        Вы можете просмотреть адреса электронной почты всех успешно зарегистрированных пользователей на вкладке «Users» в разделе Auth в консоли Firebase.

        Шаг 4: Поддержка входа пользователя

        После успешной регистрации пользователь будет автоматически залогинен. Пользователь будет залогинен, даже если ваше приложение перезагрузится. Тем не менее, ваше приложение должно включать код, который позволяет пользователям выполнять вход в систему вручную, используя адрес электронной почты и пароль, которые они указали в процессе регистрации.

        Чтобы залогинить пользователя вручную, вы должны использовать метод signInWithEmailAndPassword() класса FirebaseAuth . Метод ожидает адрес электронной почты и пароль в качестве его единственных аргументов и возвращает объект Task . Добавив к нему OnCompleteListener , вы можете проверить, был ли вход успешно завершен.

        Чтобы избежать входа за пользователя, который уже вошел, вы должны вызвать метод signInWithEmailAndPassword() , только если текущий FirebaseUser имеет значение NULL .

        В следующем фрагменте кода показано, как залогинить пользователя:

        Шаг 5: Поддержка выхода пользователя

        Чтобы отписать пользователя, вы можете просто вызвать метод signOut() класса FirebaseAuth .

        3. Использование базы данных Firebase в реальном времени

        Одна из самых мощных функций платформы Firebase — это база данных в режиме реального времени: все выполняемые на нем операции записи мгновенно доступны для всех клиентов, которые ее наблюдают. С помощью такой базы данных вы можете создавать приложения, которые позволяют пользователям беспрепятственно переключаться с одного устройства на другое, а также мгновенно взаимодействовать с другими пользователями.

        Шаг 1: Настройте свой проект

        Прежде чем использовать базу данных в режиме реального времени, вам придется добавить следующую compile зависимость к файлу build.gradle вашего модуля app:

        Шаг 2: Запись данных

        Вы можете представить базу данных в реальном времени как объект JSON. Это означает, что вы можете добавить к нему пары ключ-значение, где ключи всегда являются строками, а значения — это примитивы, массивы или другие объекты JSON.

        Прежде чем писать в базу данных реального времени, вы должны получить ссылку на нее с помощью метода getInstance() класса FirebaseDatabase . Затем вы можете получить ссылку на любой путь внутри базы данных с помощью метода getReference() . Путь может содержать либо один ключ, либо несколько ключей, расположенных иерархически.

        Когда у вас есть DatabaseReference к пути, вы можете установить его значение с помощью метода setValue() .

        В следующем фрагменте кода показано, как добавить в базу данных простую пару «ключ-значение»:

        Перейдя в раздел «Database» консоли Firebase, вы можете просмотреть все данные, находящиеся внутри базы данных в режиме реального времени.

        Шаг 3: Чтение данных

        Чтобы прочитать значение из базы данных в реальном времени, вы должны присоединить асинхронный наблюдатель к связанному ключу или пути. Точнее, вы должны присоединить объект ValueEventListener к объекту DatabaseReference , используя метод addValueEventListener() .

        Метод onDataChange() ValueEventListener дает вам доступ к объекту DataSnapshot , метод getValue( ) может использоваться для получения последнего значения ключа.

        Например, вот как вы можете получить значение, которое мы установили на предыдущем шаге:

        Обратите внимание, что после добавления ValueEventListener метод onDataChange() запускается каждый раз, когда изменяется значение, которое оно отслеживает.

        Заключение

        Платформа Firebase устраняет необходимость в создании внутреннего сервера и позволяет сосредоточиться на создании лучших приложений. В этом уроке вы научились использовать его для добавления аналитики, аутентификации пользователей и облачного хранилища данных в реальном времени в свое приложение для Android.

        Чтобы узнать больше о Firebase, вы можете обратиться к официальной документации. Вы также можете ознакомиться с нашим руководством по использованию Firebase Crash Reporting в Android:

        Источник

        Читайте также:  Card view android java
    Оцените статью