firebase-database учебник
Начало работы с базой данных firebase
Поиск…
замечания
В этом разделе приведен обзор того, что такое база данных firebase и почему разработчик может захотеть ее использовать.
Следует также упомянуть о любых крупных объектах в базе данных firebase и ссылаться на связанные темы. Поскольку документация для базы данных firebase является новой, вам может потребоваться создать начальные версии этих связанных тем.
Версии
| Платформа SDK | Версия | Дата выхода |
|---|---|---|
| Firebase JavaScript SDK | 3.7.0 | 2017-03-01 |
| Firebase C ++ SDK | 3.0.0 | 2107-02-27 |
| Firebase Unity SDK | 3.0.0 | 2107-02-27 |
| Firebase iOS SDK | 3.14.0 | 2017-02-23 |
| Firebase Android SDK | 10,2 | 2017-02-15 |
| Firebase Admin Node.js SDK | 4.1.1 | 2017-02-14 |
| Firebase Admin Java SDK | 4.1.2 | 2017-02-14 |
Добавить Firebase в свой Android-проект
Вот шаги, необходимые для создания проекта Firebase и подключения его с Android-приложением.
Добавить Firebase в приложение
Создайте проект Firebase в консоли Firebase и нажмите « Создать новый проект» .
Нажмите « Добавить Firebase» в приложение Android и выполните шаги настройки.
При появлении запроса введите имя своего приложения .
Важно ввести имя пакета, используемое вашим приложением; это можно установить только при добавлении приложения в проект Firebase.В конце вы загрузите файл
google-services.json. Вы можете загрузить этот файл снова в любое время. (этот файл находится в настройках проекта в консоли Firebase).Switch android studio Посмотреть проект и вставить файл google-service.json в папке приложения
Следующим шагом является добавление SDK для интеграции библиотек Firebase в проект.
Добавить SDK
Чтобы интегрировать библиотеки Firebase в один из ваших собственных проектов, вам нужно выполнить несколько основных задач для подготовки проекта Android Studio. Возможно, вы уже сделали это как часть добавления Firebase в свое приложение.
- Добавьте правила в файл
build.gradleуровнеbuild.gradle, чтобы включить плагин google-services :
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
Затем в своем модуле Gradle (обычно это app/build.gradle ) добавьте строку плагина apply в нижней части файла, чтобы включить плагин Gradle:
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-core:9.4.0'//THIS IS FOR ANALYTICS
compile "com.google.firebase:firebase-database:11.0.2"
}
// BELOW STATEMENT MUST BE WRITTEN IN BOTTOM
apply plugin: 'com.google.gms.google-services'
Заметки:
Данные не могут быть прочитаны / записаны без проверки подлинности. Если вы хотите его без проверки подлинности. Изменить правила в консоли базы данных firebase.
{"rules": {".read": true, ".write": true}}
Добавить разрешение в Интернете в манифесте
Обновление сервисов Google Play и репозитория Google
Написание простого значения в базе данных
Сначала выполните установку и настройку, чтобы подключить ваше приложение к Firebase. Затем из любого места вашего класса вы можете написать:
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
Он напишет Hello, Wold! в узел message , как показано ниже:
"your-project-parent" : {
"message" : "Hello, World!"
}
объяснение
FirebaseDatabase database = FirebaseDatabase.getInstance();
Над кодом будет назначаться экземпляр FirebaseDatabase в объект database для дальнейшего использования.
DatabaseReference myRef = database.getReference("message");
myRef код будет ссылаться на объект myRef на "message" дочернего элемента родителя вашего проекта (в этом примере это "your-project-parent" ). Таким образом, это "your-project-parent/message"
myRef.setValue("Hello, World!");
Над кодом будет установлен "Hello, World!" в путь, на который ссылается myRef
Автоматическая привязка настраиваемой модели к структуре данных
После того, как вы установили несколько данных в базу данных и получили структуру, состоящую из нескольких узлов, подобных этому;
"user" : {
"-KdbKcU2ptfYF2xKb5aO" : {
"firstName" : "Arthur",
"lastName" : "Schopenhauer",
"userName" : "AphorismMan",
"phone" : "+9022-02-1778",
"gender": "M",
"age" : 25
},
"-KdbQFjs9BDviuqQVHjY" : {
"firstName" : "Werner",
"lastName" : "Heisenberg",
"userName" : "whereAmI",
"phone" : "+9005-12-1901",
"gender": "M",
"age" : 75
}
}
вы можете классифицировать структуры данных.
Создание класса
Создайте класс модели для установки в базу данных.
@IgnoreExtraProperties
public class User {
public String firstName;
public String lastName;
public String userName;
public String phone;
public String gender;
public int age;
public User() {
}
public User(String firstName, String lastName, String userName, String phone, String gender, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.userName = userName;
this.phone = phone;
this.gender = gender;
this.age = age;
}
}
Некоторые вещи, которые следует помнить при создании класса модели, который вы хотите сопоставить с вашими данными:
- У вас должен быть пустой конструктор
- Объем переменных / полей должен быть общедоступным, так что DataSnapshot, возвращающийся из firebase, может обращаться к этим полям. Если вы этого не сделаете, когда вы хотите получить данные, DataSnapshot не сможет получить доступ к вашей модели в обратном вызове, и это вызовет исключение.
- Имена переменных / полей должны совпадать с именами в вашей структуре данных.
Отправка в Firebase
Создать объект пользователя
User user = new User ( "Arthur","Schopenhauer","AphorismMan","+9022-02-1778","M",25)
и ссылки
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
Теперь у вас есть ссылка на вашу базу данных. Создайте user узел с databaseReference.child("user") . Если вы сделаете .push() ваши модели найдут под случайно созданными уникальными идентификаторами, как указано выше, "-KdbKcU2ptfYF2xKb5aO", "-KdbQFjs9BDviuqQVHjY" .
databaseReference.child("user").push().setValue(user, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getActivity(), "User added.", Toast.LENGTH_SHORT).show();
}
});
Если вы хотите установить свои данные под своим конкретным ключом, сделайте это с .child("yourSpecificKey") вместо .push() .
databaseReference.child("user").child("yourSpecificKey").setValue(user,...