Я размещаю свое веб-приложение на 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])
}