Pull to refresh

Firebase снова стала предметом исследований

Reading time 2 min
Views 3.6K
Information Security *Programming *Database Administration *Data storage *


Вам не понадобится много времени, чтобы найти утёкшие в сеть базы данных Firebase. Печально, что после всех сливов и скандалов не заметно, чтобы Google пытался что-то изменить. Goon Security, одна из компаний, занимающихся информационной безопасностью, решила в очередной раз напомнить про незащищённость Firebase. И за 12 часов собрала более 13 000 000 записей, включая электронные письма, пароли, номера телефонов и личные сообщения из более чем 450 баз данных.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Comments 1

Buildy: песочница для взрослых на HTML5

Reading time 1 min
Views 38K
JavaScript *Game development *Canvas *
Buildy — многопользовательская онлайн-игра, в которой можно строить всё, что угодно, без всякой определённой цели, просто так. Это трехмерный мир в изометрической проекции, в котором можно использовать готовые объекты из библиотеки (их больше четырёх с половиной тысяч!) или рисовать свои в редакторе. В игре есть чат, с помощью которого можно согласовывать свои действия с другими игроками. Кроме общего для всех мира Goon World III, в который по-умолчанию попадают все новые игроки, можно создавать свои закрытые площадки, доступ к которым возможен только по инвайтам.


Читать дальше →
Total votes 57: ↑50 and ↓7 +43
Comments 46

Ускоренная разработка веб/мобильного приложения

Reading time 6 min
Views 35K
Website development *Development of mobile applications *Angular *
Tutorial
Когда возникает идея создать что-нибудь полезное, обычно очень хочется сделать прототип (или версию 1.0) как можно скорее. Для кого-то, видеть быстрый результат — это хорошая мотивация, чтобы развивать идею дальше; для других — главное «начать», всем известная истина, что доделывать/переделывать готовое намного легче, чем писать с нуля. Итак, в процессе очередного чаепития и обсуждения финансовых рынков, у нас появилась идея создания легкого сервиса для обмена идей и новостей, а также определения текущей ситуации на фынансовых рынках (т.н. тренды) — ведь зная тренды, можно более эффективно торговать.
В требованиях были: веб сервис, мобильная версия (желательно app), легкая коллективная админ-часть, и простой интерфейс.
Как у нас получилось мега-быстро «слепить» одновременно и веб и мобильную версию приложения CxInvestor и пойдет речь в этой статье.

Разработка


Первый вопрос, который нужно было решить — на чем писать сервер.
Читать дальше →
Total votes 26: ↑22 and ↓4 +18
Comments 20

В одной упряжке Polymer’ы, Dart и Firebase

Reading time 8 min
Views 8.7K
JavaScript *NoSQL *Dart *
Sandbox
Недавно появилась информация о том, что Google приобрел облачный сервис Firebase. На хабре информации о Firebase не особо много, а сервис выглядит очень интересно, как минимум для быстрого прототипирования или использования в качестве буфера для активных данных.

FireBase — это облачная NoSQL БД для real-time приложений. То есть, ваши данные хранятся в облаке, которое готово почти к любым нагрузкам. Ваши данные моментально обновляются на всех клиентах, которые подключены к FireBase и подписаны на информацию об обновлениях. Совершенно отпадает необходимость строить сложную систему с использованием веб-сокетов для обмена данными между сервером и клиентами в реальном времени. Вы просто подключаете JS-файл на страницу и настраиваете CallBack на события изменения данных. Все – дальше FireBase будет самостоятельно следить за данными и отдавать их пользователям. Причем, происходит это почти мгновенно! А еще с FireBase можно создавать веб-приложения, для которых вообще не потребуется собственный сервер. При этом для небольших сервисов использование FireBase совершенно бесплатно. Кроме этого, Firebase предоставляет установку прав доступа к частям данных на базе JS-выражений, транзакции (в отличие от MongoDB) и имеет встроенный функционал авторизации пользователей по электронной почте и паролю, а также авторизации с помощью сторонних поставщиков (OAuth), таких как Facebook, Twitter, GitHub, и Google.

image


Взглянув, как это работает, появилось желание переписать тьюториал на Dart.
Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Comments 5

Авторизация пользователей с AngularJS и Firebase

Reading time 4 min
Views 17K
JavaScript *Angular *
В прошлой статье, я рассказывал о Firebase. Сегодня я хочу рассказать как я организовал авторизацию пользователей с использованием AngularJS и Firebase.

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

Для основы проекта я использую ngBoilerplate, так считаю его достаточно удачной сборкой не требующей каких-то особых доработок. В сборке предустановлены Twitter Bootstrap, Angular UI, Angular Bootstrap, Font Awesome и LESS. Также замечательно настроен Grunt и Bower. Для установки и запуска чистого приложения, нужно всего лишь выполнить следующие команды:
$ git clone git://github.com/joshdmiller/ng-boilerplate
$ cd ng-boilerplate
$ sudo npm -g install grunt-cli karma bower
$ npm install
$ bower install
$ grunt watch


Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 7

Load Balancing: Firebase + RabbitMQ

Reading time 7 min
Views 9.7K
JavaScript *NoSQL *Node.JS *
Sandbox
Современные хостинг-системы (Heroku, Amazon etc.) предоставляют широкий выбор устройств и настроек для проектирования архитектуры балансировки нагрузки на сервер. Вы можете настроить как более простой Round Robin-алгоритм для последовательной разгрузки сервера, так и более сложную систему, учитывающую количество instanc'ов, текущую нагрузку, среду окружения и другие факторы.

Сегодня мы поговорим о ручном способе регулирования нагрузки (одним из). Сразу скажу, что данный способ не был протестирован в жестких условиях, но достаточно хорошо показал себя в pre-production.

Так же следует добавить, что способ, о котором я расскажу, не является каким-то лекарством или заменой уже предоставляемым хостинг-платформами balancer'ов, но в ситуации урезанного бюджета может являться этаким подорожником.
Читать дальше
Total votes 8: ↑7 and ↓1 +6
Comments 1

Firebase-queue: стероиды для firebase

Reading time 3 min
Views 5.4K
Website development *JavaScript *
Sandbox
Про Firebase уже не раз писали на хабре. Ключевым преимуществом этой системы является то, что в некоторых случаях на ней можно построить завершенное веб-приложение работающее с данными в реальном времени. Располагая возможностью редактирования правил доступа к базе данных и тем что эти правила можно устроить на основе пользователей (которых сюда тоже завезли), в принципе можно обойтись и без какого-либо backend'a. Но обычно возникают такие проблемы, которые лучше решить «со стороны» чем плодить велосипеды в правилах (например).

В середине мая разработчики объявили о выходе firebase-queue. Это javascript-библиотека с помощью которой можно организовать работу с данными в базе, как с задачами. Работает это следующим образом: определяем ячейку задач, используя Queue() на сервере устанавливаем связь. Теперь, когда в этой ячейке появится новый элемент, сервер сделает необходимые действия, если нужно оповестит о прогрессе и ошибках, и по завершению удалит задачу. В итоге мы получаем возможность покрыть много проблем возникающих в разработке с Firebase — согласовать данные, провести их дополнительную валидацию (например проверить на спам и мат) отправить их в другое место (например загрузить картинку на хостинг) и другое.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 0

Введение в Firebase: пишем простое социальное приложение на Swift

Reading time 16 min
Views 209K
Development for iOS *Cocoa *Swift *
Sandbox
В связи с неожиданным решением Facebook закрыть Parse, многое разработчики задались вопросом, что использовать вместо него. Сегодня практически невозможно представить полностью автономное приложение, которое было бы полезное всем. В связи с этим, iOS разработчики в своей работе пользуются инструментами и ресурсами, предоставленные Apple для доступа к данным. Backend-as-a-service, или сокращенно BaaS является потрясающим инструментом для разработчиков.

Среди наилучших и наиболее популярных BaaSs можно выделить Firebase от компании Google. По существу, Firebase является безусловно потрясающим в исполнении, реализации и эксплуатации. Firebase служит базой данных, которая изменяется в реальном времени и хранит данные в JSON. Любые изменения в базе данных тут же синхронизируются между всеми клиентами, или девайсами, которые используют одну и ту же базу данных. Другими словами, обновление в Firebase происходят мгновенно.

Вместе с хранилищем, Firebase также предоставляет пользовательскую аутентификацию, и поэтому все данные передаются через защищенное соединение SSL. Мы можем выбрать любую комбинацию email и пароля для аутентификации, будь то Facebook, Twitter, GitHub, Google, или что-то другое.

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

На момент написания этой статьи, в бесплатном пакете Firebase может обрабатывать до 100 одновременных соединений. Этого вполне достаточно для работы популярного приложения. За $49 в месяц ограничений на сетевую активность нет.
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 5

Google I/O 2016 в подробностях: перспективы и технологии

Reading time 7 min
Views 21K
Google Developers corporate blog Development for iOS *Development of mobile applications *Development for Android *Google API *
Привет, Хабр! 18 мая в Калифорнии, в Маунтин-Вью, прошла наша ежегодная конференция для разработчиков. На случай, если вы пропустили живую трансляцию (или просто любите текстовый формат) мы подготовили специальный пост со всем самым-самым важным и интересным, что было показано на I/O 2016.


Поехали!
Total votes 27: ↑26 and ↓1 +25
Comments 13

Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих

Reading time 2 min
Views 126K
Development for Android *
Sandbox
Не так давно Google купили Firebase и теперь на странице с описанием GCM нас встречает радостная новость о том, что пора бы мигрировать на Firebase.
...GCM users are strongly recommended to upgrade to FCM, in order to benefit from new FCM features today and in the future.

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

Нам понадобится:

  • Android Studio
  • Код демо-проекта с github
  • 20 минут свободного времени
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 18

Google I/O 2016: развитие платформы Firebase

Reading time 7 min
Views 25K
Google Developers corporate blog Development for iOS *Development of mobile applications *Development for Android *Mobile applications testing *
Привет, Хабр! Полтора года назад команда разработчиков Firebase вошла в наш дружный Google-коллектив. С тех пор наш BaaS (backend-как-сервис) вырос больше чем в четыре раза — со 110 до 450 тысяч разработчиков. И всё это время мы предоставляли всё те же услуги —  БДРВ (базы данных реального времени), авторизацию пользователей, хостинг — делая разработку приложений проще. Настало время двигаться дальше, так что мы рады представить вам крупное расширение возможностей Firebase.



Firebase становится универсальной платформой для построения Android-, iOS- и мобильных веб-приложений. Новые инструменты, направленные на упрощение разработки, привлечения пользователей и монетизации, а также новый продукт в области аналитики ждут вас под катом.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 1

Нюансы Firebase messaging для начинающих

Reading time 4 min
Views 39K
Java *Development for Android *Google API *
Sandbox
После публикации на Хабре статьи Артёма Осипова "Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих" возник ряд вопросов, которые удалось решить.

Удалось добиться отправки Push-уведомления с вибрацией и со своим звуком + уведомление в статус баре имеет большую иконку и рядом вмещается весь текст. И неважно активно приложение или висит в фоне — при клике на уведомление Main Activity всегда обновляется и несет в себе параметры из уведомления.

Итак, в layout activity_mail.xml добавим два TextView: один для заголовка уведомления и один для текста.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 4

По следам Google I/O 2016 — новый Firebase: интеграция с Android

Reading time 13 min
Views 45K
Google Developers corporate blog Development for iOS *Development of mobile applications *Development for Android *Mobile applications testing *
Привет, Хабр! Мы продолжаем цикл статей по технологиям, представленным на нашем ежегодном мероприятии Google I/O. Сегодня у нас в гостях Александр Денисов, и он расскажет про своё знакомство с базовыми возможностями обновлённого Firebase.


Передаём ему слово!
Total votes 14: ↑13 and ↓1 +12
Comments 17

Опубликована программа Droidcon Moscow 2016

Reading time 3 min
Views 3.6K
e-legion corporate blog Information Security *Development of mobile applications *Development for Android *Development for IOT *

Опубликована предварительная программа крупнейшей евразийской Android-конференции — ​Droidcon, которая пройдет в Москве 22 сентября 2016 года уже в третий раз. Деловая программа будет разделена на четыре основных направления: Android, Firebase, VR и IoT.

Android

На секции Android будут рассмотрены два популярных архитектурных подхода:
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 0

4 главных урока, которые мы усвоили при запуске нашего первого сервиса

Reading time 5 min
Views 11K
Я люблю ИП corporate blog Website development *Programming *Node.JS *Angular *

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


Функционал сервиса простой: он рассчитывает стоимость обслуживания в разных банках исходя из заданных параметров, сравнивает тарифы между собой и сортирует банки по стоимости в год. Но всё осложняется тем, что у нас статичный сайт на Jekyll.


Читать дальше →
Total votes 20: ↑15 and ↓5 +10
Comments 27

Пишем сервер-помощник для BaaS или «Ну и зачем мне тогда Firebase?»

Reading time 5 min
Views 8.2K
Development for iOS *Development for Android *Go *
Sandbox

Предисловие


Я начинающий Android разработчик, за плечами у меня около 1,5 года опыта в данной сфере. Взялся я за довольно-таки большой проект, в команде кроме меня никого нет, а бекенд писать я не умею. Решено было в качестве платформы выбрать Firebase. Так как специфика моего приложения требовала постоянной работы и получения данных из базы в фоне, я просто вставил все EventListener-ы в сервис и был доволен. До того самого момента, когда я решил написать iOS версию. Выучив Swift я ринулся в бой. Firebase SDK благо оказались очень хороши и похожи для обеих систем, так что я быстро написал основную часть и… Почему не работает?

Суть проблемы и постановка задачи


iOS мягко говоря не уважает приложения работающие в фоне. Единственный способ пробудить приложение которое убила система (а убивает она их из-за любого чиха) — уведомления через APNS. К тому же, на Android 6+ постоянное соединение не держится и уведомления в итоге приходят с задержкой от 5 минут до 2 часов (на 7.1), если они реализованы не через GCM. Хорошо, что Firebase Cloud Messaging поддерживает и APNS, и GCM. Плохо, что для этого нужен дополнительный сервер. Было бы круто, если б уведомления автоматически отправлялись по определённым изменениям в базе данных. Инженеры обещают сделать нечто подобное в следующем году… А работать то должно уже сейчас.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Comments 2

Добавление AdMob рекламы в Android приложение с использованием Firebase

Reading time 4 min
Views 51K
Development for Android *
Sandbox

Предисловие


Вводим «AdMob» в Google и первым сайтом уже будет не AdMob-ский, а Google-ский сайт. После перехода на оный Вас начнут по немногу переманивать на темную сторону Firebase (недавно купленный Google).

Firebase дает довольно обширные возможности по аналитике (по крайней мере для меня, как программиста, а не маркетолога) рекламы в вашем приложениее (рост, вес, страна, кол-во просмотров, версии Android куда установливалось и тд. и тп.).

Первым делом был найден пост, но он для Eclipse, а после первых попыток сделать по примеру — начались предупреждения о depricated да и вообще ошибки.

Прочитав больше информации стало понятно, что переход AdMob на firebase произошел недавно и разбиратся придется самому.

Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 7

Как Discord обрабатывает более 1 000 000 push-запросов в минуту с помощью Elixir GenStage

Reading time 6 min
Views 17K
High performance *Instant Messaging *Erlang/OTP *Web services testing *Development of communication systems *
Translation

Discord

Discord испытал небывалый рост. Чтобы справиться с ним, нашему отделу разработки досталась приятная проблема — искать способ масштабирования сервисов бэкенда.

В этом деле мы добились большого успеха с помощью одной технологии, которая называется Elixir GenStage.

Идеальный шторм: Overwatch и Pokémon GO


Этим летом наша система мобильных push-уведомлений стала скрипеть от нагрузки. Чат /r/Overwatch перевалил за 25 000 одновременных пользователей, а чат-группы Pokémon GO возникали повсеместно, так что внезапные всплески потока уведомлений стали серьёзной проблемой.
Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Comments 28

Минус одна система аналитики данных

Reading time 3 min
Views 9.1K
Development for iOS *Development of mobile applications *Development for Android *Development of communication systems *Kotlin *
Tutorial
Количество систем аналитики и визуализации данных, необходимых для повседневной работы, давно превысило все разумные пределы. С появлением Firebase их стан пополнился на одну. В данной статье мы расскажем как подружить мобильную платформу от Google с другим, более привычным инструментом аналитики — Google Analytics. Площадкой для экспериментов стал наш новый продукт Tviggo (мобильное приложение + набор мессенджер ботов для международных звонков по GSM — www tviggo. net).


Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Comments 0

Firebase: прощание с иллюзиями

Reading time 6 min
Views 73K
Лайв Тайпинг corporate blog JavaScript *SQL *NoSQL *Node.JS *
Маркетинг стал частью мира разработки. По количеству звездочек на GitHub определяют, какое из похожих друг на друга решений круче, а по количеству твитов можно спрогнозировать, какая технология будет развиваться в ближайшие полгода. В таких условиях мы рискуем стать жертвами хайпа, что мы в Лайв Тайпинге и сделали, принимая Firebase за Священный Грааль, способный решить все проблемы разом: сбора статистики, интеграции чатов, выбора базы данных, быстрой разработки MVP. Когда же я столкнулся с этим сервисом в бою, то понял, что моё представление о Firebase расходилось с реальностью настолько сильно, что понимание области применения технологии стало для меня настоящим откровением. Я хочу поделиться этим пониманием и тем, как всё-таки использовать Firebase правильно.


Читать дальше →
Total votes 24: ↑15 and ↓9 +6
Comments 34