2016-08-27 4 views
0

Я пытаюсь тянуть в данных на определенном View Controller из моей базы данных Firebase, используя следующие:Firebase работает в симулятор, но не на iPhone

_refHandle = [_postRef observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) { 
    NSDictionary *postDict = snapshot.value; 
    // ... 
}]; 

код отлично работает в тренажере, но не работает на iPhone (код пропускается). Я использую этот фрагмент кода в других частях моего приложения, и он работает как на устройстве, так и на симуляторе. Я также реализовал эту часть кода в пользовательский метод для вытягивания данных (все еще не работает). Кто-нибудь знает, почему это не работает на реальном устройстве?

+1

Вы пытались отключить биткод? http://stackoverflow.com/a/38755824/6047916 – andrew

+0

@andrew да, у меня все еще не работает. – user1585646

+0

Отметьте мой ответ здесь http://stackoverflow.com/a/41200174/2294985 –

ответ

0

Это происходит из-за ваших правил безопасности. В вашем Firebase консоли:

  • Перейти в пункт меню Database
  • Перейдите на вкладку Правила
  • Обновление правила безопасности на:

    { 
        "rules": { 
        ".read": true, // Or whatever rule you would like 
        ".write": "auth != null" 
        } 
    } 
    
+0

У меня такая же проблема, и это не помогло и не отключило битовый код, также не получилось –

+0

У меня тоже появилась эта ошибка на iOS - вы вообще разработали резолюцию? – ajonno

0

Перейдите в меню Database п.

Перейдите на вкладку «Правила»

Обновление правила безопасности, чтобы (для реального устройства):

{ 
"rules": 
    { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

Обновление правила безопасности, чтобы (для реального тренажера Test):

{ 
    "rules": 
    { 
    ".read": "auth == null", 
    ".write": "auth == null" 
    } 
} 
1

Я обнаружил, что если вы вошли в систему, и удалить приложение, после того, как вы снова установите приложение, вы все равно войдете в систему. Я точно не знаю, но я предположил, что Firebase каким-то образом связывает кеш учетной записи с Keychain с идентификатором Bundle, а не в локальном хранилище приложений.

Мое решение не достаточно хорошо, но он работал на меня:

  1. Удалите приложение из реального устройства.
  2. Перейдите в свой проект на панели навигации.
  3. На вкладке «Общие» измените свой идентификатор Bundle, например: «myApp.com» на «myApplication.com» или что угодно.
  4. Построение и управление
  5. Bingo!
+0

Это работа, но не хорошее решение – Zhanserik

Смежные вопросы