Это серия статей о трех способах использования 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.