-
Notifications
You must be signed in to change notification settings - Fork 891
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make Analytics environment checks warnings instead of errors #3836
Conversation
🦋 Changeset detectedLatest commit: 8bbcdb9 The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Binary Size ReportAffected SDKs
Test Logs
|
packages/analytics/src/factory.ts
Outdated
installations, | ||
gtagCoreFunction | ||
); | ||
initializationPromisesMap[appId] = validateIndexedDBOpenable() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems we can combine the sync checks with the async check here so that we don't need to return an empty instance, and no-op happens in the original methods.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
packages/analytics/src/factory.ts
Outdated
gtagCoreFunction | ||
) | ||
) | ||
.catch(e => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should put the catch
directly behind the environment check promise, otherwise we are catching errors from initializeIds
as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can have a single environment check error which lists all the failed conditions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
packages/analytics/src/functions.ts
Outdated
@@ -41,7 +57,12 @@ export async function logEvent( | |||
gtagFunction(GtagCommand.EVENT, eventName, eventParams); | |||
return; | |||
} else { | |||
const measurementId = await initializationPromise; | |||
const measurementId = await handleInitializationPromiseErrors( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are using measurementId
for the result of environment checks. A cleaner way might be wrapping the whole function in a try catch, so it's a no-op if anything failed in initialization. You will need to re-throw the errors where we currently log the error messages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wasn't totally sure what you meant but I tried to do this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I was not clear. The code looks like that we are doing no-op because measurementId is not available, but in fact it could be that it is available, but the environment check failed, so it is confusing to readers. I think we should make it clear in the code that we do no-op when either environment check fails or measurementId is not available.
packages/analytics/src/helpers.ts
Outdated
@@ -166,6 +173,12 @@ async function gtagOnEvent( | |||
// Workaround for http://b/141370449 - third argument cannot be undefined. | |||
gtagCore(GtagCommand.EVENT, measurementId, gtagParams || {}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is out of scope of this PR, but we should move the gtagCore
call outside of the try catch block. It should execute regardless if our initialization failed or not. The current implementation will prevent people from sending events to a non-firebase managed measurementId if any of our initialization failed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another problem is we can not use Promise.all
to wait for all promises, because it will reject if any of the promises was rejected. (Sorry I didn't catch it before!).
Instead, we should use Promise.allSettled
which is part of es2020 which is too new to use directly. There is an easy polyfill we can do before putting the promises into initializationPromisesMap
and dynamicConfigPromisesList
(and other promise maps where we do Promise.all
), like so:
function reflect(promise){
return promise.then(function(v){ return {v:v, status: "fulfilled" }},
function(e){ return {e:e, status: "rejected" }});
}
initializationPromisesMap[appId] = reflect(initializeIds(\*...*\));
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should resolve the above issues in a separate PR.
Size Analysis ReportAffected Products
|
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.63 kB | ? (?) |
size_with_ext_deps | ? | 4.05 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 22 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING SDK_VERSION _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version version$1 |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_DEFAULT_ENTRY_NAME
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.63 kB | ? (?) |
size_with_ext_deps | ? | 4.05 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 21 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _DEFAULT_ENTRY_NAME _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_addComponent
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.61 kB | ? (?) |
size_with_ext_deps | ? | 4.02 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_addOrOverwriteComponent
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.67 kB | ? (?) |
size_with_ext_deps | ? | 4.09 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _addOrOverwriteComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_apps
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.60 kB | ? (?) |
size_with_ext_deps | ? | 4.02 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_clearComponents
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.63 kB | ? (?) |
size_with_ext_deps | ? | 4.05 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _clearComponents _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_components
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.61 kB | ? (?) |
size_with_ext_deps | ? | 4.02 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_getProvider
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.66 kB | ? (?) |
size_with_ext_deps | ? | 4.07 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _getProvider _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_registerComponent
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.61 kB | ? (?) |
size_with_ext_deps | ? | 4.03 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
_removeServiceInstance
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.73 kB | ? (?) |
size_with_ext_deps | ? | 4.15 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 7 deps_addComponent _getProvider _registerComponent _removeServiceInstance isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 21 depsDEFAULT_ENTRY_NAME ERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
deleteApp
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.75 kB | ? (?) |
size_with_ext_deps | ? | 4.16 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _registerComponent deleteApp isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
getApp
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.71 kB | ? (?) |
size_with_ext_deps | ? | 5.39 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _registerComponent getApp isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 21 depsDEFAULT_ENTRY_NAME ERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
getApps
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.64 kB | ? (?) |
size_with_ext_deps | ? | 4.06 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _registerComponent getApps isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
initializeApp
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 3.69 kB | ? (?) |
size_with_ext_deps | ? | 9.05 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _registerComponent initializeApp isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | FirebaseAppImpl PlatformLoggerService |
? |
variables | ? | Click to show 21 depsDEFAULT_ENTRY_NAME ERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component ComponentContainer |
? |
onLog
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.74 kB | ? (?) |
size_with_ext_deps | ? | 5.95 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _registerComponent isVersionServiceProvider onLog registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger setUserLogHandler |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
registerVersion
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.61 kB | ? (?) |
size_with_ext_deps | ? | 4.03 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | _addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
setLogLevel
Size
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
size | ? | 2.64 kB | ? (?) |
size_with_ext_deps | ? | 4.11 kB | ? (?) |
Dependencies
Type | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
functions | ? | Click to show 6 deps_addComponent _registerComponent isVersionServiceProvider registerCoreComponents registerVersion setLogLevel |
? |
classes | ? | PlatformLoggerService |
? |
variables | ? | Click to show 20 depsERRORS ERROR_FACTORY PLATFORM_LOG_STRING _apps _components logger name$1 name$2 name$3 name$4 name$5 name$6 name$7 name$8 name$9 name$a name$b name$c name$d version |
? |
External Dependencies
Module | Base (0c607c9) | Head (5c8621f) | Diff |
---|---|---|---|
@firebase/logger |
? | Logger setLogLevel |
? |
@firebase/util |
? | ErrorFactory |
? |
@firebase/component |
? | Component |
? |
@firebase/functions-exp
-
getFunctions
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 1.98 kB ? (?) size_with_ext_deps ? 5.86 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? getFunctions
registerFunctions
? classes ? ContextProvider
FunctionsService
? variables ? DEFAULT_REGION
FUNCTIONS_TYPE
name
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
? -
httpsCallable
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 5.33 kB ? (?) size_with_ext_deps ? 9.92 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 10 deps
_errorForResponse
call
codeForHTTPStatus
decode
encode
failAfter
httpsCallable
mapValues
postJSON
registerFunctions
? classes ? ContextProvider
FunctionsError
FunctionsService
? variables ? Click to show 7 deps
DEFAULT_REGION
FUNCTIONS_TYPE
LONG_TYPE
UNSIGNED_LONG_TYPE
errorCodeMap
name
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/util
? FirebaseError
? @firebase/app-exp
? _registerComponent
registerVersion
? @firebase/component
? Component
? -
useFunctionsEmulator
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 1.94 kB ? (?) size_with_ext_deps ? 5.79 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? registerFunctions
useFunctionsEmulator
? classes ? ContextProvider
FunctionsService
? variables ? DEFAULT_REGION
FUNCTIONS_TYPE
name
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/app-exp
? _registerComponent
registerVersion
? @firebase/component
? Component
?
@firebase/installations-exp
-
deleteInstallations
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 8.90 kB ? (?) size_with_ext_deps ? 17.3 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 52 deps
broadcastFidChange
bufferToBase64UrlSafe
callFidChangeCallbacks
clearTimedOutRequest
closeBroadcastChannel
completeInstallationRegistration
createInstallationRequest
deleteInstallationRequest
deleteInstallations
encode
extractAppConfig
extractAuthTokenInfoFromResponse
fetchAuthTokenFromServer
fidChanged
generateAuthTokenRequest
generateFid
getAuthorizationHeader
getBroadcastChannel
getDbPromise
getDeleteEndpoint
getErrorFromResponse
getExpiresInFromResponseExpiresIn
getGenerateAuthTokenEndpoint
getHeaders
getHeadersWithAuth
getId
getInstallationEntry
getInstallationsEndpoint
getKey
getMissingValueError
getToken
hasAuthTokenRequestTimedOut
hasInstallationRequestTimedOut
isAuthTokenExpired
isAuthTokenValid
isEntryRegistered
isServerError
makeAuthTokenRequestInProgressEntry
refreshAuthToken
registerInstallation
registerInstallations
remove
retryIfServerError
set
sleep
triggerRegistrationIfNecessary
update
updateAuthTokenRequest
updateInstallationRequest
updateOrCreateInstallationEntry
waitUntilAuthTokenRequest
waitUntilFidRegistration
? variables ? Click to show 23 deps
DATABASE_NAME
DATABASE_VERSION
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
INSTALLATIONS_API_URL
INSTALLATIONS_NAME
INSTALLATIONS_NAME_INTERNAL
INTERNAL_AUTH_VERSION
INVALID_FID
OBJECT_STORE_NAME
PACKAGE_VERSION
PENDING_TIMEOUT_MS
SERVICE
SERVICE_NAME
TOKEN_EXPIRATION_BUFFER
VALID_FID_PATTERN
broadcastChannel
dbPromise
fidChangeCallbacks
internalFactory
name
publicFactory
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/util
? ErrorFactory
FirebaseError
? idb
? openDb
? @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
? -
getId
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 8.34 kB ? (?) size_with_ext_deps ? 16.8 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 49 deps
broadcastFidChange
bufferToBase64UrlSafe
callFidChangeCallbacks
clearTimedOutRequest
closeBroadcastChannel
completeInstallationRegistration
createInstallationRequest
encode
extractAppConfig
extractAuthTokenInfoFromResponse
fetchAuthTokenFromServer
fidChanged
generateAuthTokenRequest
generateFid
getAuthorizationHeader
getBroadcastChannel
getDbPromise
getErrorFromResponse
getExpiresInFromResponseExpiresIn
getGenerateAuthTokenEndpoint
getHeaders
getHeadersWithAuth
getId
getInstallationEntry
getInstallationsEndpoint
getKey
getMissingValueError
getToken
hasAuthTokenRequestTimedOut
hasInstallationRequestTimedOut
isAuthTokenExpired
isAuthTokenValid
isEntryRegistered
isServerError
makeAuthTokenRequestInProgressEntry
refreshAuthToken
registerInstallation
registerInstallations
remove
retryIfServerError
set
sleep
triggerRegistrationIfNecessary
update
updateAuthTokenRequest
updateInstallationRequest
updateOrCreateInstallationEntry
waitUntilAuthTokenRequest
waitUntilFidRegistration
? variables ? Click to show 23 deps
DATABASE_NAME
DATABASE_VERSION
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
INSTALLATIONS_API_URL
INSTALLATIONS_NAME
INSTALLATIONS_NAME_INTERNAL
INTERNAL_AUTH_VERSION
INVALID_FID
OBJECT_STORE_NAME
PACKAGE_VERSION
PENDING_TIMEOUT_MS
SERVICE
SERVICE_NAME
TOKEN_EXPIRATION_BUFFER
VALID_FID_PATTERN
broadcastChannel
dbPromise
fidChangeCallbacks
internalFactory
name
publicFactory
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/util
? ErrorFactory
FirebaseError
? idb
? openDb
? @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
? -
getInstallations
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 8.43 kB ? (?) size_with_ext_deps ? 16.9 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 50 deps
broadcastFidChange
bufferToBase64UrlSafe
callFidChangeCallbacks
clearTimedOutRequest
closeBroadcastChannel
completeInstallationRegistration
createInstallationRequest
encode
extractAppConfig
extractAuthTokenInfoFromResponse
fetchAuthTokenFromServer
fidChanged
generateAuthTokenRequest
generateFid
getAuthorizationHeader
getBroadcastChannel
getDbPromise
getErrorFromResponse
getExpiresInFromResponseExpiresIn
getGenerateAuthTokenEndpoint
getHeaders
getHeadersWithAuth
getId
getInstallationEntry
getInstallations
getInstallationsEndpoint
getKey
getMissingValueError
getToken
hasAuthTokenRequestTimedOut
hasInstallationRequestTimedOut
isAuthTokenExpired
isAuthTokenValid
isEntryRegistered
isServerError
makeAuthTokenRequestInProgressEntry
refreshAuthToken
registerInstallation
registerInstallations
remove
retryIfServerError
set
sleep
triggerRegistrationIfNecessary
update
updateAuthTokenRequest
updateInstallationRequest
updateOrCreateInstallationEntry
waitUntilAuthTokenRequest
waitUntilFidRegistration
? variables ? Click to show 23 deps
DATABASE_NAME
DATABASE_VERSION
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
INSTALLATIONS_API_URL
INSTALLATIONS_NAME
INSTALLATIONS_NAME_INTERNAL
INTERNAL_AUTH_VERSION
INVALID_FID
OBJECT_STORE_NAME
PACKAGE_VERSION
PENDING_TIMEOUT_MS
SERVICE
SERVICE_NAME
TOKEN_EXPIRATION_BUFFER
VALID_FID_PATTERN
broadcastChannel
dbPromise
fidChangeCallbacks
internalFactory
name
publicFactory
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/util
? ErrorFactory
FirebaseError
? idb
? openDb
? @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
? -
getToken
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 8.35 kB ? (?) size_with_ext_deps ? 16.8 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 49 deps
broadcastFidChange
bufferToBase64UrlSafe
callFidChangeCallbacks
clearTimedOutRequest
closeBroadcastChannel
completeInstallationRegistration
createInstallationRequest
encode
extractAppConfig
extractAuthTokenInfoFromResponse
fetchAuthTokenFromServer
fidChanged
generateAuthTokenRequest
generateFid
getAuthorizationHeader
getBroadcastChannel
getDbPromise
getErrorFromResponse
getExpiresInFromResponseExpiresIn
getGenerateAuthTokenEndpoint
getHeaders
getHeadersWithAuth
getId
getInstallationEntry
getInstallationsEndpoint
getKey
getMissingValueError
getToken
hasAuthTokenRequestTimedOut
hasInstallationRequestTimedOut
isAuthTokenExpired
isAuthTokenValid
isEntryRegistered
isServerError
makeAuthTokenRequestInProgressEntry
refreshAuthToken
registerInstallation
registerInstallations
remove
retryIfServerError
set
sleep
triggerRegistrationIfNecessary
update
updateAuthTokenRequest
updateInstallationRequest
updateOrCreateInstallationEntry
waitUntilAuthTokenRequest
waitUntilFidRegistration
? variables ? Click to show 23 deps
DATABASE_NAME
DATABASE_VERSION
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
INSTALLATIONS_API_URL
INSTALLATIONS_NAME
INSTALLATIONS_NAME_INTERNAL
INTERNAL_AUTH_VERSION
INVALID_FID
OBJECT_STORE_NAME
PACKAGE_VERSION
PENDING_TIMEOUT_MS
SERVICE
SERVICE_NAME
TOKEN_EXPIRATION_BUFFER
VALID_FID_PATTERN
broadcastChannel
dbPromise
fidChangeCallbacks
internalFactory
name
publicFactory
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/util
? ErrorFactory
FirebaseError
? idb
? openDb
? @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
? -
onIdChange
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 8.60 kB ? (?) size_with_ext_deps ? 17.0 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 52 deps
addCallback
broadcastFidChange
bufferToBase64UrlSafe
callFidChangeCallbacks
clearTimedOutRequest
closeBroadcastChannel
completeInstallationRegistration
createInstallationRequest
encode
extractAppConfig
extractAuthTokenInfoFromResponse
fetchAuthTokenFromServer
fidChanged
generateAuthTokenRequest
generateFid
getAuthorizationHeader
getBroadcastChannel
getDbPromise
getErrorFromResponse
getExpiresInFromResponseExpiresIn
getGenerateAuthTokenEndpoint
getHeaders
getHeadersWithAuth
getId
getInstallationEntry
getInstallationsEndpoint
getKey
getMissingValueError
getToken
hasAuthTokenRequestTimedOut
hasInstallationRequestTimedOut
isAuthTokenExpired
isAuthTokenValid
isEntryRegistered
isServerError
makeAuthTokenRequestInProgressEntry
onIdChange
refreshAuthToken
registerInstallation
registerInstallations
remove
removeCallback
retryIfServerError
set
sleep
triggerRegistrationIfNecessary
update
updateAuthTokenRequest
updateInstallationRequest
updateOrCreateInstallationEntry
waitUntilAuthTokenRequest
waitUntilFidRegistration
? variables ? Click to show 23 deps
DATABASE_NAME
DATABASE_VERSION
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
INSTALLATIONS_API_URL
INSTALLATIONS_NAME
INSTALLATIONS_NAME_INTERNAL
INTERNAL_AUTH_VERSION
INVALID_FID
OBJECT_STORE_NAME
PACKAGE_VERSION
PENDING_TIMEOUT_MS
SERVICE
SERVICE_NAME
TOKEN_EXPIRATION_BUFFER
VALID_FID_PATTERN
broadcastChannel
dbPromise
fidChangeCallbacks
internalFactory
name
publicFactory
version
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/util
? ErrorFactory
FirebaseError
? idb
? openDb
? @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
?
@firebase/performance-exp
-
getPerformance
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 16.8 kB ? (?) size_with_ext_deps ? 21.8 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 50 deps
addToQueue
changeInitializationStatus
configValid
convertMetricValueToInteger
createNetworkRequestEntry
createUserTimingTrace
dispatchQueueEvents
getApiKey
getAppId
getApplicationInfo
getAuthTokenPromise
getConfig
getDocumentReadyComplete
getEffectiveConnectionType
getIid
getIidPromise
getInitializationPromise
getPerformance
getProjectId
getRemoteConfig
getServiceWorkerStatus
getStoredConfig
getVisibilityState
initializePerf
isPerfInitialized
isValidCustomAttributeName
isValidCustomAttributeValue
isValidMetricName
logNetworkRequest
logTrace
mergeStrings
postToFlEndpoint
processConfig
processQueue
registerPerformance
sendEventsToFl
sendLog
sendTraceLog
serializeNetworkRequest
serializeTrace
serializer
setupApi
setupNetworkRequests
setupOobResources
setupOobTraces
setupTransportService
setupUserTimingTraces
shouldLogAfterSampling
storeConfig
transportHandler
? classes ? Api
PerformanceController
SettingsService
Trace
? variables ? Click to show 45 deps
ATTRIBUTE_FORMAT_REGEX
CONFIG_EXPIRY_LOCAL_STORAGE_KEY
CONFIG_LOCAL_STORAGE_KEY
COULD_NOT_GET_CONFIG_MSG
DEFAULT_CONFIGS
DEFAULT_ENTRY_NAME
DEFAULT_REMAINING_TRIES
DEFAULT_SEND_INTERVAL_MS
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
FID_WAIT_TIME_MS
FIRST_CONTENTFUL_PAINT_COUNTER_NAME
FIRST_INPUT_DELAY_COUNTER_NAME
FIRST_PAINT_COUNTER_NAME
FIS_AUTH_PREFIX
INITIAL_SEND_TIME_DELAY_MS
MAX_ATTRIBUTE_NAME_LENGTH
MAX_ATTRIBUTE_VALUE_LENGTH
MAX_METRIC_NAME_LENGTH
OOB_TRACE_PAGE_LOAD_PREFIX
REMOTE_CONFIG_SDK_VERSION
RESERVED_ATTRIBUTE_PREFIXES
RESERVED_AUTO_PREFIX
SDK_VERSION
SERVICE
SERVICE_NAME
TRACE_MEASURE_PREFIX
TRACE_START_MARK_PREFIX
TRACE_STOP_MARK_PREFIX
VisibilityState
apiInstance
consoleLogger
factory
iid
initializationPromise
initializationStatus
isTransportSetup
logger
name
oobMetrics
queue
remainingTries
settingsServiceInstance
version
windowInstance
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/logger
? LogLevel
Logger
? @firebase/util
? ErrorFactory
isIndexedDBAvailable
validateIndexedDBOpenable
? @firebase/app-exp
? _getProvider
_registerComponent
registerVersion
? @firebase/component
? Component
? -
registerPerformance
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 16.7 kB ? (?) size_with_ext_deps ? 21.7 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 49 deps
addToQueue
changeInitializationStatus
configValid
convertMetricValueToInteger
createNetworkRequestEntry
createUserTimingTrace
dispatchQueueEvents
getApiKey
getAppId
getApplicationInfo
getAuthTokenPromise
getConfig
getDocumentReadyComplete
getEffectiveConnectionType
getIid
getIidPromise
getInitializationPromise
getProjectId
getRemoteConfig
getServiceWorkerStatus
getStoredConfig
getVisibilityState
initializePerf
isPerfInitialized
isValidCustomAttributeName
isValidCustomAttributeValue
isValidMetricName
logNetworkRequest
logTrace
mergeStrings
postToFlEndpoint
processConfig
processQueue
registerPerformance
sendEventsToFl
sendLog
sendTraceLog
serializeNetworkRequest
serializeTrace
serializer
setupApi
setupNetworkRequests
setupOobResources
setupOobTraces
setupTransportService
setupUserTimingTraces
shouldLogAfterSampling
storeConfig
transportHandler
? classes ? Api
PerformanceController
SettingsService
Trace
? variables ? Click to show 45 deps
ATTRIBUTE_FORMAT_REGEX
CONFIG_EXPIRY_LOCAL_STORAGE_KEY
CONFIG_LOCAL_STORAGE_KEY
COULD_NOT_GET_CONFIG_MSG
DEFAULT_CONFIGS
DEFAULT_ENTRY_NAME
DEFAULT_REMAINING_TRIES
DEFAULT_SEND_INTERVAL_MS
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
FID_WAIT_TIME_MS
FIRST_CONTENTFUL_PAINT_COUNTER_NAME
FIRST_INPUT_DELAY_COUNTER_NAME
FIRST_PAINT_COUNTER_NAME
FIS_AUTH_PREFIX
INITIAL_SEND_TIME_DELAY_MS
MAX_ATTRIBUTE_NAME_LENGTH
MAX_ATTRIBUTE_VALUE_LENGTH
MAX_METRIC_NAME_LENGTH
OOB_TRACE_PAGE_LOAD_PREFIX
REMOTE_CONFIG_SDK_VERSION
RESERVED_ATTRIBUTE_PREFIXES
RESERVED_AUTO_PREFIX
SDK_VERSION
SERVICE
SERVICE_NAME
TRACE_MEASURE_PREFIX
TRACE_START_MARK_PREFIX
TRACE_STOP_MARK_PREFIX
VisibilityState
apiInstance
consoleLogger
factory
iid
initializationPromise
initializationStatus
isTransportSetup
logger
name
oobMetrics
queue
remainingTries
settingsServiceInstance
version
windowInstance
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/logger
? LogLevel
Logger
? @firebase/util
? ErrorFactory
isIndexedDBAvailable
validateIndexedDBOpenable
? @firebase/app-exp
? _registerComponent
registerVersion
? @firebase/component
? Component
? -
trace
Size
Type Base (0c607c9) Head (5c8621f) Diff size ? 16.7 kB ? (?) size_with_ext_deps ? 21.7 kB ? (?) Dependencies
Type Base (0c607c9) Head (5c8621f) Diff functions ? Click to show 50 deps
addToQueue
changeInitializationStatus
configValid
convertMetricValueToInteger
createNetworkRequestEntry
createUserTimingTrace
dispatchQueueEvents
getApiKey
getAppId
getApplicationInfo
getAuthTokenPromise
getConfig
getDocumentReadyComplete
getEffectiveConnectionType
getIid
getIidPromise
getInitializationPromise
getProjectId
getRemoteConfig
getServiceWorkerStatus
getStoredConfig
getVisibilityState
initializePerf
isPerfInitialized
isValidCustomAttributeName
isValidCustomAttributeValue
isValidMetricName
logNetworkRequest
logTrace
mergeStrings
postToFlEndpoint
processConfig
processQueue
registerPerformance
sendEventsToFl
sendLog
sendTraceLog
serializeNetworkRequest
serializeTrace
serializer
setupApi
setupNetworkRequests
setupOobResources
setupOobTraces
setupTransportService
setupUserTimingTraces
shouldLogAfterSampling
storeConfig
trace
transportHandler
? classes ? Api
PerformanceController
SettingsService
Trace
? variables ? Click to show 45 deps
ATTRIBUTE_FORMAT_REGEX
CONFIG_EXPIRY_LOCAL_STORAGE_KEY
CONFIG_LOCAL_STORAGE_KEY
COULD_NOT_GET_CONFIG_MSG
DEFAULT_CONFIGS
DEFAULT_ENTRY_NAME
DEFAULT_REMAINING_TRIES
DEFAULT_SEND_INTERVAL_MS
ERROR_DESCRIPTION_MAP
ERROR_FACTORY
FID_WAIT_TIME_MS
FIRST_CONTENTFUL_PAINT_COUNTER_NAME
FIRST_INPUT_DELAY_COUNTER_NAME
FIRST_PAINT_COUNTER_NAME
FIS_AUTH_PREFIX
INITIAL_SEND_TIME_DELAY_MS
MAX_ATTRIBUTE_NAME_LENGTH
MAX_ATTRIBUTE_VALUE_LENGTH
MAX_METRIC_NAME_LENGTH
OOB_TRACE_PAGE_LOAD_PREFIX
REMOTE_CONFIG_SDK_VERSION
RESERVED_ATTRIBUTE_PREFIXES
RESERVED_AUTO_PREFIX
SDK_VERSION
SERVICE
SERVICE_NAME
TRACE_MEASURE_PREFIX
TRACE_START_MARK_PREFIX
TRACE_STOP_MARK_PREFIX
VisibilityState
apiInstance
consoleLogger
factory
iid
initializationPromise
initializationStatus
isTransportSetup
logger
name
oobMetrics
queue
remainingTries
settingsServiceInstance
version
windowInstance
? External Dependencies
Module Base (0c607c9) Head (5c8621f) Diff @firebase/logger
? LogLevel
Logger
? @firebase/util
? ErrorFactory
isIndexedDBAvailable
validateIndexedDBOpenable
? @firebase/app-exp
? _registerComponent
registerVersion
? @firebase/component
? Component
?
Test Logs
- Head (
5c8621ff
): https://github.com/firebase/firebase-js-sdk/actions/runs/272944098
Split the checks into 2, moved the sync check into factory and the indexedDB check into initializeIds(). |
Warn instead of throw if analytics detects an environment mismatch (no cookies, no indexedDB, etc.) These should not disrupt the user experience and should fail silently.
In the case of sync checks, it simply returns an empty analytics instance, so that calls to
analytics().logEvent()
, etc. do not error but are a no-op.In the case of the async indexedDB.open() check, since it can't complete before the factory initialization finishes, it will cause the initialization promise referenced by
initializationPromisesMap[appId]
to throw, and all the code that depends on these promises (the public analytics methods like logEvent, etc., plus the all-apps checks inside gtagOnEvent/gtagOnConfig) will catch the error, log a warning, and skip calling gtag.Question: Is
warn
still too noisy? Is info better?Fixes #3573