Использование Google Firebase Web SDK - PullRequest
0 голосов
/ 03 апреля 2020

Я размещаю свое веб-приложение на Firebase и в настоящее время использую 2 поддерживаемых веб-продукта: Analytics и Производительность .

Настройка документации производительности для веб упоминает 3 основных варианта, включая SDK: CDN, URL-адреса хостинга и пакет модуля (пакет npm). В настройке аналитической документации для веб упоминаются только первые 2.

Мне удалось включить продукты, использующие пакет npm, а ниже приведена реализация c. Я не совсем понимаю, как я могу получить доступ к инициализированному пакету в любом из моих сценариев, если я следую настройке, используя CDN или размещенные URL.

У меня вопрос - для каждого метода установки, как открыт ли инициализированный пакет или как его лучше показать?


Я использую React, и стоит упомянуть, что предоставление инициализированного пакета в состоянии (redux / useState) не работать очень хорошо Для меня лучше всего работал модуль npm, как описано, и я сохранил его в переменной окна. Вот лог c, реализованный специально как ловушка React.

import React from 'react'
import * as firebase from 'firebase/app'
import 'firebase/analytics'
import 'firebase/performance'
export default function useFirebaseProducts(didConsent) {
  React.useEffect(() => {
    if (!didConsent) {
      console.log('trying to init firebase but user didn't consent to cookies yet')
      return
    }
    const firebaseConfig = {
      //
    }
    let t_app = firebase.initializeApp(firebaseConfig)
    window.myFirebaseApp = t_app
    let t_analytics = t_app.analytics()
    window.myAnalytics = t_analytics
    let t_performance = t_app.performance()
    window.myPerformance = performance
    //usage example of analytics, window.perfMetrics.onFirstInputDelay is exposed elsewhere
    window.perfMetrics.onFirstInputDelay((delay, evt) => {
      window.myAnalytics.logEvent('send', 'event', {
        //
      })
    })
  }, [didConsent])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...