Як зупинити Firebase від реєстрації оновлень статусу при запуску програми


98

Щоразу, коли я запускаю програму FireBase, вона реєструє стан різних функцій Firebase. Зараз це те, що реєструється:

Configuring the default app.

<FIRAnalytics/INFO> Firebase Analytics v.3200000 started

<FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see ...)

<FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist

<FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO

<FIRAnalytics/INFO> Firebase Analytics enabled

Я переглянув стручки і не знайшов жодних операторів друку, так як інакше я б зупинив їх реєстрацію в надурочному режимі, коли я запустив додаток?


3
Я погоджуюсь з тобою. Я також шукаю спосіб вимкнути повідомлення.
Gui Moura

1
Ви знайшли метод?
Gilian

Однозначно повинен бути випадок вимкнення повідомлень. Не має значення, скільки з них зареєстровано. Я не проти отримувати попередження та помилки, але початкові повідомлення відволікають, без сумніву.
Якуб Трулахр

Відповіді:


117

Ви можете вимкнути журнал налагодження за допомогою прапорця -FIRDebugDisabled.

Ви можете додати його до своєї схеми :

  1. Виберіть панель інструментів " Схема"
  2. Редагувати схему
  3. Виберіть Виконати
  4. Клацніть Аргументи та додайте -FIRDebugDisabled

1
А, я зареєструвався у інженерів - ці повідомлення будуть реєструватися незалежно. Хоча з прапором, це все, що ви повинні бачити.
Ян Барбер

20
A -noFIRAnalyticsDebugEnabledбуло перейменовано на -FIRDebugDisabled. Інші кроки такі ж.
Марат Сайтаков

3
Не дуже добре (це, ймовірно, не буде додано до сховищ коду тощо) і, таким чином, спричинить різний код залежно від способу збирання (думаю, запустити / архівувати). За замовчуванням у збірках випусків журнали повинні бути ВИМКНЕНІ ... IMHO 😎
Джонні,

1
це має жахливий побічний ефект повороту режиму налагодження для аналітики
firebase

62

Додайте FirebaseConfiguration.shared.setLoggerLevel(.min)раніше, FirebaseApp.configure()щоб досягти мінімальної кількості журналів.

func setupFirebase() {
  FirebaseConfiguration.shared.setLoggerLevel(.min)
  FirebaseApp.configure()
}

Це робить роботу!
Кайл Гослан

3
Код оновлено до FIRConfiguration.sharedInstance (). SetLoggerLevel (.min)
Крішан

16

За замовчуванням Firebase записуватиме інформацію, помилки та попередження.
Таким чином, ви можете встановити рівень реєстратора, для якого вам потрібно.
Якщо ви встановите для .Error, ви отримаєте мінімальний журнал лише тоді, коли з'являється помилка.

setLoggerLevel перед FirebaseApp.configure (), як показано нижче

У Swift 2.3 та Firebase 4

 FirebaseConfiguration.sharedInstance().setLoggerLevel(.Error)
 FirebaseApp.configure()

У Swift 3 та Firebase 4

 FirebaseConfiguration.shared.setLoggerLevel(.min)
 FirebaseApp.configure()

Як я можу написати цей код у об'єктиві c, будь ласка, скажіть мені спасибі
Йогеш Патель

15

У моєму випадку, щоб приховати зайвий шматок журналу консолі від Firebase, я зробив наступне:

  1. Перейдіть до продукту -> схема -> редагувати схему.
  2. На вкладці Аргументи в розділі Змінні середовища додайте OS_ACTIVITY_MODE = вимкнути

введіть тут опис зображення

  • На той випадок, якщо це вам знадобиться, просто зніміть прапорець.
  • Вимкнення OS_ACTIVITY_MODE іноді також вимикає журнали для всіх винятків

Редагування 1 : Як сказав @ jesus-adolfo-rodriguez, це пов'язано з Xcode. Отже, якщо ви не хочете OSLog на консолі Xcode, поставте змінну середовища OS_ACTIVITY_MODE "відключити" у вашій схемі.


Редагувати 2:

FirebaseConfiguration.shared.setLoggerLevel(FirebaseLoggerLevel.min)
FirebaseApp.configure()

Детальніше про реалізацію FIRConfiguration тут


Редакція 3: 2019

Відповідно до цього випуску: https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714

Додавання аргументу -FIRDebugDisabled та очищення проекту зробили свою справу .

Система реєстрації у Firebase

Система журналювання має два режими: режим за замовчуванням та режим налагодження. У режимі за замовчуванням на пристрій надсилатимуться лише журнали із повідомленням про рівень журналу, попередження та помилка. У режимі налагодження всі журнали надсилатимуться на пристрій. Рівні журналів, які використовує Firebase, відповідають рівням журналу ASL.

Увімкніть режим налагодження, передавши в програму аргумент -FIRDebugEnabled. Цей аргумент можна додати в схему Xcode програми. Коли режим налагодження ввімкнено через -FIRDebugEnabled, подальші запуски програми також будуть у режимі налагодження. Для повернення до режиму за замовчуванням потрібно явно відключити режим налагодження за допомогою аргументу програми -FIRDebugDisabled .

Можна також змінити рівень коду за замовчуванням у коді, зателефонувавши setLoggerLevel: в інтерфейсі FIRConfiguration.


3
це не має нічого спільного з вогневою базою
Ісус Родрігес

і приховає вашу аналітику, якщо ви хочете, щоб їх показали -FIRAnalyticsDebugEnabled
DogCoffee

Це відключило всі журнали для мене. Як ви сказали в останньому пункті.
Р. Мохан

Це допомогло мені зменшити повідомлення з Firebase, які були внесені в журнал незважаючи на setLoggerLevel(.min)і -FIRDebugDisabled. Чудова відповідь!
Келін

4
Перестаньте говорити людям відключати всі журнали.
Клаус Йоргенсен


6

Swift 4 Firebase 4.10

Встановіть рівень реєстратора у своєму AppDelegate.swift

FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)

Ось повний код:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)
    FirebaseApp.configure()
    return true
}

4

За замовчуванням Firebase Analytics записує лише 4 рядки INFO у виробництві + помилки / попередження. Це може дати дуже мало результату, якщо все працює правильно. Додавання -noFIRAnalyticsDebugEnabled буде відключати лише журнали рівня DEBUG, і ERROR / WARN завжди реєструються. Якщо ви бачите якісь попередження чи помилки, вам, ймовірно, потрібно щось зробити, щоб усунути причину. Деякі речі, ймовірно, не працюватимуть правильно, якщо зафіксовано попередження / помилки. Додаток, який правильно налаштований, не повинен реєструвати помилки / попередження.

Повідомлення, позначені FIRInstanceID / *, реєструються у повідомленні Firebase, а помилки / попередження завжди реєструються.


3

Як сказав djabi, ви не можете вимкнути ці журнали, якщо вони INFO, WARNING або ERROR.

Я хочу додати відповідь Нітіна Гогеля, оскільки я не можу коментувати: Прапор FirebaseAppDelegateProxyEnabled не призначений для відключення журналів. Якщо вимкнути його, ви втратите автоматичне відстеження кампанії, і вам потрібно буде додати методи FIRAnalytics (AppDelegate), щоб самостійно управляти URL-адресами та активністю користувачів.


3

Щоб додати відповідь Алекса, від https://firebase.google.com/docs/cloud-messaging/ios/client

FirebaseAppDelegateProxyEnabled призначений для зміни методів делегата програми

API FCM виконує розміщення методів у двох ключових областях: зіставлення маркера APN з маркером реєстрації FCM та збір аналітичних даних під час обробки зворотного виклику повідомлення. Розробники , які вважають за краще не використовувати swizzling можуть відключити його, додавши прапор FirebaseAppDelegateProxyEnabled в файлі Info.plist в додатках і встановити його в NO (логічне значення). У відповідних областях керівництв наводяться приклади коду як із включеним методом зміни розміру методів, так і без нього.


1

Я думаю, що відбувається велика і дуже важлива плутанина.

При -FIRDebugDisabledйого використанні буде вимкнено режим налагодження, який потім вплине на ваші вимірювання під час тестування та розробки .

Щоб зменшити журнали:

FirebaseConfiguration.shared.setLoggerLevel(.min)
FirebaseApp.configure()

Однак у версіях 6.18 та 6.20 є помилка .

Як обхідний шлях, який ви можете використовувати, -noFIRAnalyticsDebugEnabledце зовсім інше, він не відключає ваш режим налагодження.


перша помилка створена 8 серпня 2019 року і поки не виправлена ​​:( сподіваємось, вони скоро її виправлять. Ми думали про перехід до іншого інструменту, ці журнали надзвичайно спам
rgkobashi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.