Это серия статей о трех способах использования Firebase, первая часть посвящена основам Firebase, вторая посвящена использованию Firebase в Интернете (AngularJs 1.x & Redux), а последний использует Firebase с приложением для Android, созданным с помощью ReactNative.
Часть 1
Прежде чем переходить к какой-либо веб-инфраструктуре, я обращаю внимание на две вещи: базу данных и развертывание. База данных, потому что это то, что определяет структуру и объемы действий для приложения, а развертывание, потому что клиентам нравится измерять прогресс, а отзывы могут быть получены как можно скорее.
База данных
У Firebase есть база данных в реальном времени, и это круто! однако мне пришлось думать о структуре данных по-другому, поскольку это похоже на JSON, некоторые ограничения были сделаны, например
Если вы создаете свои собственные ключи, они должны быть в кодировке UTF-8, иметь длину не более 768 байт и не могут содержать ., $, #, [, ], / или управляющие символы ASCII 0– 31 или 127.
Кроме того, вы должны быть осторожны с вложенными данными.
// list of categories
{
"airline" : true,
"bank" : true,
"hotel" : true,
"network_provider" : true,
"restaurant" : true
}
Выше приведен образец структуры данных для категорий. Обратите внимание, что мне пришлось использовать пары ключ/значение вместо квадратных скобок [] для массива элементов.
var categoriesRef = firebase.database().ref('categories/');
функция ref() возвращает ссылку на список категорий в базе данных.
categoriesRef.on('value', function(snapshot) {
doSomethingWithData(snapshot.val());
});
со ссылкой вы можете следить за изменениями on() в базе данных, а
categoriesRef.push({ 'television_stations': true })
добавляет новый элемент в список.
Развертывание
Это очень важно, многие платформы могут быть трудно развернуть, прежде чем Meteor.Js запустил Galaxy Hosting Service, я развернул некоторые приложения на бесплатном хостинге, который он предоставил, я не мог привлечь трафик на сайт, потому что это был довольно медленным. Также, поскольку я хотел воспользоваться бесплатным хостингом Google App Engine, мне пришлось выучить Python, просто чтобы минимизировать затраты.
Развертывание довольно простое:
//Install firebase npm install -g firebase-tools //CD into the project directory and firebase init
После инициализации проекта firebase генерирует .json для конфигурации.
//Remember to ignore the node_modules directory
{
"hosting": {
"public": "app",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
С другой стороны, мне пришлось ждать два дня, прежде чем я смог настроить личный домен и сертификацию HTTPS.