Кажется, в какой-то момент конфликт между веб-клиентом платформы Ionic.io и Firebase. Это происходит только на Android (отлично в браузере и на моем iPhone).
Шаги по воссозданию:
ionic start test-app
cd test-app
ionic platform add android
Установка Firebase
bower install firebase --save
Добавить скрипт firebase в index.html
<script src="lib/firebase/firebase-debug.js"></script>
Включить протоколирование Firebase
Firebase.enableLogging(true);
Включить прослушиватель Firebase для некоторых данных в контроллере Dash (controllers.js)
.controller('DashCtrl', function($scope) {
var ref = new Firebase('http://<YOUR-APP>.firebaseio.com');
ref.on('child_added', function(snap) {
console.log(snap.val());
});
})
Создайте проект Android
ionic build android
Установите веб-клиент платформы Ionic.io(ionic.service.core вводится в приложение Angular module).
ionic add ionic-platform-web-client
подражать
ionic emulate android -l -c
Я использую эмулятор Nexus S с API 23. Тот же результат на моем тестовом Android-устройстве - Samsung Galaxy GT-S7582 Duos под управлением Android 4.2.2 (API 17).
Выход журнала содержит
p:0: Browser went offline. Killing connection. :4354
c:0:1: Closing realtime connection. :4354
c:0:1: Shutting down all connections :4354
c:0:1:0 Longpoll is being closed. :4354
W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection
p:0: data client disconnected :4354
0: onDisconnectEvents :4354
При переключении между вкладками приложений Firebase снова соединяется, а затем снова отключается.
Отключение прекращается, когда "ionic.service.core" не вводится.
Кто-нибудь испытывает то же самое? Любая идея, как избежать этих отключений?
Спасибо за вашу помощь!
Как предложил Эрик Боббитт из команды Ionic, обтекание ссылки на ссылку Firebase в вызове $ ionicPlatform.ready() решает эту проблему.
$ionicPlatform.ready(function() {
var ref = new Firebase('https://<YOUR-APP>.firebaseio.com');
// Do something using ref or expose it as a service.
});