Repository Analysis

invertase/react-native-firebase

🔥 A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.

12.5 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of invertase/react-native-firebase, a TypeScript project with 12,301 GitHub stars. SynthScan v2.0 examined 244,818 lines of code across 1418 source files, recording 578 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 12.5 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

12.5
Adjusted Score
12.5
Raw Score
100%
Time Factor
2026-08-28
Last Push
12.3K
Stars
TypeScript
Language
244.8K
Lines of Code
1.4K
Files
578
Pattern Hits
2026-08-29
Scan Date
0.15
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 216HIGH 0MEDIUM 26LOW 336

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 578 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hallucination Indicators216 hits · 2640 pts
SeverityFileLineSnippetContext
CRITICALpackages/database/e2e/query/query.e2e.js23 queryBefore._modifiers._modifiers.length.should.equal(0);CODE
CRITICALpackages/database/e2e/query/query.e2e.js26 queryBefore._modifiers._modifiers.length.should.equal(0);CODE
CRITICALpackages/database/e2e/query/query.e2e.js27 queryAfter._modifiers._modifiers.length.should.equal(1);CODE
CRITICALpackages/database/e2e/query/query.e2e.js30 queryAfter._modifiers._modifiers.length.should.equal(1);CODE
CRITICALpackages/database/e2e/query/query.e2e.js31 queryAfterAfter._modifiers._modifiers.length.should.equal(3); // adds startAt endAt internallyCODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js26 FilePath.MAIN_BUNDLE.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js31 FilePath.CACHES_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js32 FilePath.DOCUMENT_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js35 FilePath.EXTERNAL_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js41 FilePath.EXTERNAL_STORAGE_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js46 FilePath.TEMP_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js47 FilePath.LIBRARY_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js48 FilePath.PICTURES_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/utilsStatics.e2e.js49 FilePath.MOVIES_DIRECTORY.should.be.a.String();CODE
CRITICALpackages/app/e2e/app.e2e.js50 modular.SDK_VERSION.should.be.a.String();CODE
CRITICALpackages/app/e2e/app.constants.e2e.js44 app.appConfig.should.be.a.Object();CODE
CRITICALpackages/app/e2e/app.constants.e2e.js45 app.appConfig.name.should.be.a.String();CODE
CRITICALpackages/app/e2e/app.constants.e2e.js46 app.options.should.be.a.Object();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js183 data.createdAt.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js189 data.nested.updatedAt.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js190 data.nested.updatedAt.seconds.should.equal(updatedAt.seconds);CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js191 data.nested.updatedAt.nanoseconds.should.equal(updatedAt.nanoseconds);CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js192 data.nested.linkedRef.path.should.equal(linkedRef.path);CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2649 data.nextDay.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2651 data.prevHour.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2653 data.dayBucket.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2654 data.fromEpochMs.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2694 data.now.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2696 data.receiverNow.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2699 data.fromSec.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2701 data.fromMicros.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js1676 data.randomValue.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2269 data.firstScore.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2270 data.lastScore.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2338 eng.firstName.should.be.a.String();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2339 eng.lastName.should.be.a.String();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2439 data.globalDayBucket.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2440 data.fluentDayBucket.constructor.name.should.equal('Timestamp');CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2728 data.numType.should.be.a.String();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js2729 data.collId.should.be.a.String();CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js3124 snapshot.results.length.should.be.greaterThan(0);CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js4132 snapshot.results.length.should.be.greaterThan(0);CODE
CRITICALpackages/firestore/e2e/Pipeline.e2e.js4133 snapshot.results.length.should.be.lessThanOrEqual(10);CODE
CRITICALpackages/firestore/e2e/SnapshotMetadata.e2e.js34 colRef.metadata.fromCache.should.be.Boolean();CODE
CRITICALpackages/firestore/e2e/SnapshotMetadata.e2e.js35 docRef.metadata.fromCache.should.be.Boolean();CODE
CRITICALpackages/firestore/e2e/SnapshotMetadata.e2e.js46 colRef.metadata.hasPendingWrites.should.be.Boolean();CODE
CRITICALpackages/firestore/e2e/SnapshotMetadata.e2e.js47 docRef.metadata.hasPendingWrites.should.be.Boolean();CODE
CRITICALpackages/firestore/e2e/FieldValue.e2e.js125 snapshot.data().foo.seconds.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/FieldValue.e2e.js137 snapshot1.data().foo.nanoseconds.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/FieldValue.e2e.js142 snapshot2.data().foo.nanoseconds.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/DocumentChange.e2e.js41 docChange.doc.constructor.name.should.eql('DocumentSnapshot');CODE
CRITICALpackages/firestore/e2e/QuerySnapshot.e2e.js51 snapshot.docs.length.should.be.aboveOrEqual(1);CODE
CRITICALpackages/firestore/e2e/QuerySnapshot.e2e.js76 snapshot.metadata.constructor.name.should.eql('SnapshotMetadata');CODE
CRITICALpackages/firestore/e2e/QuerySnapshot.e2e.js83 snapshot.query.constructor.name.should.eql('CollectionReference');CODE
CRITICALpackages/firestore/e2e/withConverter.e2e.js69 post.should.not.be.an.instanceof(Post);CODE
CRITICALpackages/firestore/e2e/withConverter.e2e.js384 data.createdAt.should.be.an.instanceOf(Timestamp);CODE
CRITICALpackages/firestore/e2e/withConverter.e2e.js385 data.updatedAt.should.be.an.instanceOf(Timestamp);CODE
CRITICAL…es/firestore/e2e/CollectionReference/properties.e2e.js29 instance.firestore.app.name.should.eql('[DEFAULT]');CODE
CRITICALpackages/firestore/e2e/DocumentSnapshot/data.e2e.js93 data.string.should.be.a.String();CODE
CRITICALpackages/firestore/e2e/DocumentSnapshot/data.e2e.js95 data.stringEmpty.should.be.a.String();CODE
156 more matches not shown…
Hyper-Verbose Identifiers209 hits · 223 pts
SeverityFileLineSnippetContext
LOWtests/.detoxrc.js12function androidReversePortsFromEnv() {CODE
LOWtests/app.js272 after(async function flushNativeCoverageProfile() {CODE
LOWtests/local-tests/firestore/document-reference.tsx6export function DocumentReferenceTestComponent() {CODE
LOWtests/local-tests/firestore/onSnapshotInSync.js31export function FirestoreOnSnapshotInSyncTest() {CODE
LOWtests/local-tests/auth/nativeAppleSignIn.ts36export function isNativeAppleSignInAvailable(): boolean {CODE
LOWtests/local-tests/auth/nativeAppleSignIn.ts40export async function performAppleSignInRequest(): Promise<NativeAppleSignInResult> {CODE
LOWtests/local-tests/auth/apple-full-name.tsx70export function AppleFullNameTestComponent() {CODE
LOWtests/local-tests/functions/https-callable.tsx14export function HttpsCallableTestComponent(): React.JSX.Element {CODE
LOWtests/local-tests/functions/streaming-callable.tsx14export function StreamingCallableTestComponent(): React.JSX.Element {CODE
LOWtests/scripts/pull-native-coverage.js40function androidCoverageFileExists(deviceId) {CODE
LOWtests/scripts/pull-native-coverage.js81async function pullAndroidCoverageWithRetry(deviceId, options = {}) {CODE
LOWtests/scripts/pull-native-coverage.js170function deleteProcessedAndroidCoverageEc(ecFilePath) {CODE
LOWtests/e2e/firebase.test.js53function logCloudPressureAnalysisPointer(context) {CODE
LOWtests/e2e/firebase.test.js62function platformFromDetoxConfigurationName(name) {CODE
LOWtests/e2e/firebase.test.js117function staticPrefixedJetControlPort(pk) {CODE
LOWtests/e2e/firebase.test.js233function resolveDetoxConfigurationName() {CODE
LOWtests/e2e/firebase.test.js422function resolveAndroidEmulatorPort(serial) {CODE
LOWtests/e2e/firebase.test.js585function forceStopAndroidTestingApps(label) {CODE
LOWtests/e2e/firebase.test.js603async function waitForAndroidInstrumentationStopped(label, timeoutMs = 30000) {CODE
LOWtests/e2e/firebase.test.js633function clearStaleMacOsTestingForSharedJetPort(label) {CODE
LOWtests/e2e/firebase.test.js659async function ensureAndroidJetHostClear(label = 'android-jet-host-clear') {CODE
LOWtests/e2e/firebase.test.js681async function waitForColdBootEmulatorRegistered(serial, avdName, timeoutMs) {CODE
LOWtests/e2e/firebase.test.js761async function waitForAndroidEmulatorReady() {CODE
LOWtests/e2e/firebase.test.js1028function hasJetReconnectDesyncSignal(output) {CODE
LOWtests/e2e/firebase.test.js1038function isJetReconnectDesyncFailure(output) {CODE
LOWtests/e2e/firebase.test.js1042function isRetryableJetSessionFailure(output) {CODE
LOWtests/e2e/firebase.test.js1070function isRetryableCloudQuotaFailure(jetOutput) {CODE
LOWtests/e2e/firebase.test.js1293async function awaitJetExitWithStallGuard(jetSession, stallMs = jetAwaitExitStallTimeoutMs()) {CODE
LOWtests/e2e/androidReadyPolicy.js13function shouldSkipAndroidSettleAndLoad(isCI) {CODE
LOWtests/e2e/detoxLatencyPolicy.js44function androidAdbSerialAppearTimeoutMs() {CODE
LOWtests/e2e/detoxLatencyPolicy.js53function androidAdbInstallTimeoutMs() {CODE
LOWtests/e2e/detoxLatencyPolicy.js58function jetAwaitExitStallTimeoutMs() {CODE
LOWtests/e2e/androidAdbRange.js16function isAdbEmulatorConsolePortInRange(port) {CODE
LOWtests/e2e/androidAdbRange.js24function emulatorConsolePortOutOfAdbRange(serial) {CODE
LOWtests/e2e/androidAdbRange.js30function shouldFailFastQemuWithoutAdb(serial, deviceState) {CODE
LOWtests/e2e/androidAdbRange.js75function shouldColdBootAndroidOnLaunchRetry(messageOrErr) {CODE
LOWscripts/version.js54function resolveTestsMacosFmtPodspecPath(candidates = TESTS_MACOS_FMT_PODSPEC_CANDIDATES) {CODE
LOWscripts/version.js65function assertTestsMacosFmtAtLeastFloor() {CODE
LOWscripts/jest-ai-mocks-global-setup.js59function getArgvTestPathIgnorePatterns() {CODE
LOWpackages/database/lib/index.ts291export function setPersistenceCacheSizeBytes(db: Database, bytes: number): Promise<void> {CODE
LOWpackages/database/lib/web/RNFBDatabaseModule.ts81function snapshotWithPreviousChildToObject(CODE
LOWpackages/database/lib/web/RNFBDatabaseModule.ts106function getCachedDatabaseInstance(appName: string, dbURL: string): WebDatabase {CODE
LOWpackages/database/lib/web/RNFBDatabaseModule.ts123function getCachedOnDisconnectInstance(refValue: WebDatabaseReference): WebOnDisconnect {CODE
LOWpackages/database/e2e/helpers.js114exports.waitForNativeDbListenerReady = async function waitForNativeDbListenerReady(CODE
LOWpackages/database/e2e/helpers.js131exports.waitForNativeDbListenerRegistration = async function waitForNativeDbListenerRegistration(CODE
LOWpackages/crashlytics/lib/index.ts186export function didCrashOnPreviousExecution(crashlytics: Crashlytics): Promise<boolean> {CODE
LOWpackages/crashlytics/lib/index.ts221export function setCrashlyticsCollectionEnabled(CODE
LOWpackages/app/firebase_spm.rb178def rnfirebase_build_setting_list(current)CODE
LOWpackages/app/firebase_spm.rb321def rnfirebase_add_spm_embed_phase(installer)CODE
LOWpackages/app/firebase_spm.rb537def rnfirebase_run_spm_user_project_hooks(installer)CODE
LOWpackages/app/firebase_spm.rb758def rnfirebase_add_spm_core_to_app_target(installer)CODE
LOWpackages/app/firebase_spm.rb881def rnfirebase_remove_spm_core_from_app_target(installer)CODE
LOWpackages/app/firebase_spm.rb967def rnfirebase_fix_spm_archive_signature_collision(installer)CODE
LOWpackages/app/firebase_spm.rb1055def rnfirebase_apply_spm_build_settings(installer)CODE
LOWpackages/app/__tests__/harnessCommittedDefaults.test.ts111function listTrackedHarnessTestSources(): string[] {CODE
LOWpackages/app/__tests__/expoPluginPackageExports.test.ts32function discoverPackageNamesWithAppPlugin(): string[] {CODE
LOWpackages/app/__tests__/firebase_spm_test.rb44 def new_shell_script_build_phase(name)CODE
LOWpackages/app/__tests__/firebase_spm_test.rb1362 def new_fake_cocoapods_installer_class(hook_private: true)CODE
LOW…ckages/app/__tests__/firebase_spm_embed_script_test.rb126 def extract_embed_frameworks_from(script)CODE
LOW…ckages/app/__tests__/firebase_spm_embed_script_test.rb191 def build_fat_dynamic_framework(framework_path, binary_name)CODE
149 more matches not shown…
Over-Commented Block97 hits · 92 pts
SeverityFileLineSnippetContext
LOWjest.config.js1module.exports = {COMMENT
LOWtests/globals.js21import shouldMatchers from 'should';COMMENT
LOWtests/ios/testing/AppDelegate.mm261 // Initialize RNFBAppCheckModule, it sets the custom RNFBAppCheckProviderFactoryCOMMENT
LOWtests/local-tests/auth/gcloud-enable-totp-in-project.sh1#!/bin/bashCOMMENT
LOWscripts/fetch_ai_mock_responses.ts1// Copyright (c) 2016-present Invertase Limited & ContributorsCOMMENT
LOWscripts/update-firebase-sdk-versions.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/jest-ai-mocks-global-setup.js1// Copyright (c) 2016-present Invertase Limited & ContributorsCOMMENT
LOWscripts/repro-android-build-flake.sh1#!/bin/bashCOMMENT
LOWscripts/e2e/export-slot-env.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/e2e/check-e2e-resources.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/e2e/start-packager.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/e2e/release-e2e-resources.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/e2e/lib/e2e-slot-env.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/e2e/lib/e2e-startup-failfast.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/e2e/lib/e2e-resource-env.sh1#!/usr/bin/env bashCOMMENT
LOW…ckages/database/ios/RNFBDatabase/RNFBDatabaseModule.mm21#import "RNFBDatabaseModule.h"COMMENT
LOWpackages/crashlytics/ios_config.sh1#!/usr/bin/env bashCOMMENT
LOW…ashlytics/ios/RNFBCrashlytics/RNFBCrashlyticsModule.mm21#import <React/RCTConvert.h>COMMENT
LOW…tics/ios/RNFBCrashlytics/RNFBCrashlyticsInitProvider.m21#elif __has_include(<FirebaseCore/FirebaseCore.h>)COMMENT
LOW…tics/ios/RNFBCrashlytics/RNFBCrashlyticsInitProvider.h21// RNFBCrashlyticsModule.mm (Objective-C++), which only ever calls the threeCOMMENT
LOWpackages/app/firebase_spm.rb1# frozen_string_literal: trueCOMMENT
LOWpackages/app/firebase_spm.rb41 abslCOMMENT
LOWpackages/app/firebase_spm.rb61 # source of truth) the first time it's needed, then cached for the restCOMMENT
LOWpackages/app/firebase_spm.rb81 # resolved with. Called once, from `firebase_dependency` itself, theCOMMENT
LOWpackages/app/firebase_spm.rb141#COMMENT
LOWpackages/app/firebase_spm.rb161# Returns true only when `$RNFirebaseDisableSPM` has been explicitly set to `true`.COMMENT
LOWpackages/app/firebase_spm.rb201 destination="${app_frameworks_dir}/${framework_name}"COMMENT
LOWpackages/app/firebase_spm.rb241 }COMMENT
LOWpackages/app/firebase_spm.rb261COMMENT
LOWpackages/app/firebase_spm.rb301# dynamic linkage. It's a no-op (returns immediately) when Firebase usedCOMMENT
LOWpackages/app/firebase_spm.rb341COMMENT
LOWpackages/app/firebase_spm.rb401# not `type: .dynamic`) -- seeCOMMENT
LOWpackages/app/firebase_spm.rb481 project.instance_variable_set(:@available_uuids, [])COMMENT
LOWpackages/app/firebase_spm.rb601# counter, RN SPM integrity, static-linkage guard) and, when present,COMMENT
LOWpackages/app/firebase_spm.rb621# This file is `require`d from each RNFB podspec, which CocoaPods evaluatesCOMMENT
LOWpackages/app/firebase_spm.rb741# need to call this yourself.COMMENT
LOWpackages/app/firebase_spm.rb821 # doesn't actually link it. Linking a package product (same asCOMMENT
LOWpackages/app/firebase_spm.rb861# need to call this yourself.COMMENT
LOWpackages/app/firebase_spm.rb921 pkg.remove_from_projectCOMMENT
LOWpackages/app/firebase_spm.rb941# This isn't specific to react-native-firebase -- the same class of bug, withCOMMENT
LOWpackages/app/firebase_spm.rb1001# need to call this yourself.COMMENT
LOWpackages/app/firebase_spm.rb1021# resolved via the app's own project/scheme (SPM packages don't haveCOMMENT
LOWpackages/app/firebase_spm.rb1041# paths for *every* product in that resolved package graph (not justCOMMENT
LOWpackages/app/ios_config.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/app/firebase_json.rb1# frozen_string_literal: trueCOMMENT
LOWpackages/app/ios/RNFBApp/RNFBSharedUtils.h21#if __has_include(<FirebaseCore/FirebaseCore.h>)COMMENT
LOWpackages/app/ios/RNFBApp/RNFBAppModule.mm21#import <FirebaseCore/FirebaseCore.h>COMMENT
LOWpackages/app/__tests__/firebase_spm_test.rb181# element type of `AbstractTarget#build_configurations`. Exposes both `name`COMMENT
LOWpackages/app/__tests__/firebase_spm_test.rb341 def setupCOMMENT
LOW…ckages/app/__tests__/firebase_spm_embed_script_test.rb1# frozen_string_literal: trueCOMMENT
LOWpackages/app/__tests__/run_with_coverage.rb1# frozen_string_literal: trueCOMMENT
LOWpackages/app/__tests__/firebase_spm_shape_test.rb1# frozen_string_literal: trueCOMMENT
LOWpackages/app/__tests__/firebase_spm_shape_test.rb21#COMMENT
LOW…ests__/iosTurboModuleConstantsReturnTypeParity.test.ts1import fs from 'fs';COMMENT
LOW…e/firebase/common/ReactNativeFirebaseEventEmitter.java41 private static final String TAG = "RNFB_EMITTER";COMMENT
LOW…e/firebase/common/ReactNativeFirebaseEventEmitter.java61 // Host identity we moved past while converging onto pending/attached; late attaches of thisCOMMENT
LOW…e/firebase/common/ReactNativeFirebaseEventEmitter.java81 return sharedInstance;COMMENT
LOWpackages/app/lib/internal/web/memidb/lib/scheduling.js1// When running within Node.js (including jsdom), we want to use setImmediateCOMMENT
LOW…estore/ios/RNFBFirestore/RNFBFirestoreDocumentModule.h21#import <FirebaseCore/FirebaseCore.h>COMMENT
LOW…ore/ios/RNFBFirestore/RNFBFirestoreTransactionModule.h21#import <FirebaseCore/FirebaseCore.h>COMMENT
37 more matches not shown…
Modern AI Meta-Vocabulary24 hits · 62 pts
SeverityFileLineSnippetContext
MEDIUMscripts/run-full-tests.sh75# In case of error send output to console for agentic troubleshootingCOMMENT
MEDIUMscripts/e2e/lib/e2e-slot-env.sh301 # Process-local / orchestration leftovers apply() clears — export if re-set forCOMMENT
MEDIUM.github/workflows/scripts/android-e2e-detox.sh2# android-emulator-runner executes each script: line via sh -c; keep orchestration here.COMMENT
MEDIUMokf-bundle/monorepo-tooling/prepare-and-cache.md214**Bundling premise:** per [running e2e § Rules #3](../testing/running-e2e.md#rules) (canonical owner). The inner loop isCODE
MEDIUMokf-bundle/monorepo-tooling/prepare-and-cache.md230### Tier C — event-driven e2e rerun (spike)COMMENT
MEDIUMokf-bundle/monorepo-tooling/prepare-and-cache.md240Chain: `lib` edit → `nx watch` rebuilds `dist` → Metro re-bundles → **`update-done`** → host `POST`s a re-run action to CODE
MEDIUMokf-bundle/monorepo-tooling/architecture-decisions.md156## MonoTool-AD-9 — Dev watch rebuilds prepare; e2e TDD rerun is event-driven off Metro — **Deferred**COMMENT
MEDIUMokf-bundle/monorepo-tooling/index.md15In scope: `lerna`/`nx` task orchestration and caching, `react-native-builder-bob` outputs, the `packages/*` build graph,CODE
MEDIUMokf-bundle/monorepo-tooling/work-queue.md32| [MonoTool-AD-9](architecture-decisions.md#monotool-ad-9--dev-watch-rebuilds-prepare-e2e-tdd-rerun-is-event-driven-off-CODE
MEDIUMokf-bundle/monorepo-tooling/work-queue.md358- **Status:** Deferred — no incremental dev-watch/hot-reload loop exists today; **off the critical path** for MT1/MT2/MTCODE
MEDIUMokf-bundle/monorepo-tooling/work-queue.md361 - Note: the OKF debug/release correction already landed separately as `docs: correct assertion about JS bundles in devCODE
MEDIUMokf-bundle/monorepo-tooling/work-queue.md362 - Analyze the event-driven e2e rerun (Metro `update-done`/`onBundleBuilt` → Jet `POST /rerun` on `8091`; [design Tier CODE
MEDIUMokf-bundle/testing/e2e-parallel-design.md517### Host orchestrationCOMMENT
MEDIUMokf-bundle/testing/running-e2e.md736. **One e2e at a time (default)** — never overlap `:test-cover` runs on one host unless each run uses a distinct port/dCODE
MEDIUMokf-bundle/testing/running-e2e.md115#### Test-runner host orchestration (log triage only)COMMENT
MEDIUMokf-bundle/testing/running-e2e.md117**No commands to run from this section** — for interpreting `:test-cover` logs and CI artifacts only. Patch workflow: [dCODE
MEDIUMokf-bundle/testing/coverage-design.md198- **Transfer:** patched test-runner/mocha-remote WS only (`coverage-ready` → `pull-coverage` → `coverage-data` → `coveraCODE
MEDIUMokf-bundle/ci-workflows/android.md71| Defer `server.run()` until host `POST /launch-ready` on control port **8091** (`RNFB_JET_DEFER_RUN=1`) | Jet patch + `CODE
MEDIUMokf-bundle/ci-workflows/detox-patches.md31Related patches: `jet`, `mocha-remote-client`, `mocha-remote-server` — WS reconnect grace, coverage handshake, client keCODE
MEDIUMokf-bundle/ci-workflows/index.md15* [Test-runner orchestration (log triage)](../testing/running-e2e.md#test-runner-host-orchestration-log-triage-only) — pCOMMENT
MEDIUMokf-bundle/ci-workflows/ios.md167### E2E test app orchestration (Detox + Jet)COMMENT
MEDIUMokf-bundle/ci-workflows/ios.md208| Defer `server.run()` until host `POST /launch-ready` on control port **8091** (`RNFB_JET_DEFER_RUN=1`) | Jet patch + `CODE
MEDIUMokf-bundle/ci-workflows/ios.md265# Detox orchestration inside the app processCOMMENT
MEDIUMokf-bundle/ci-workflows/ios.md360# Disconnect resource context (+ orchestrate phase when defer-run enabled)COMMENT
Structural Annotation Overuse10 hits · 15 pts
SeverityFileLineSnippetContext
LOWCONTRIBUTING.md103### Step 1: Clone the repositoryCOMMENT
LOWCONTRIBUTING.md110### Step 2: Install test project dependenciesCOMMENT
LOWtests/README.md34### Step 1: Install test project dependenciesCOMMENT
LOWtests/README.md44### Step 2: Start Packager ScriptCOMMENT
LOWtests/README.md60### Step 3: Build Native AppCOMMENT
LOWtests/README.md81### Step 4: Setting up android emulator and iOS simulator and Firestore emulatorCOMMENT
LOWtests/README.md97### Step 5: Finally, run the testsCOMMENT
LOWpackages/auth/ios/RNFBAuth/RNFBAuthHelper.m833 // NOTE: This variable has NO PURPOSE AT ALL, it isCOMMENT
LOWpackages/auth/ios/RNFBAuth/RNFBAuthHelper.m1511 // NOTE: This variable has NO PURPOSE AT ALL, it isCOMMENT
LOWpackages/auth/ios/RNFBAuth/RNFBAuthHelper.m1643 // NOTE: This variable has NO PURPOSE ATCOMMENT
Fake / Example Data12 hits · 12 pts
SeverityFileLineSnippetContext
LOWpackages/firestore/e2e/Pipeline.e2e.js1706 phone: '555-0200',CODE
LOWpackages/firestore/e2e/Pipeline.e2e.js1835 data.fullName.should.equal('John Doe');CODE
LOWpackages/auth/__tests__/auth.test.ts258 currentUser: { email: 'user@example.com' },CODE
LOWpackages/auth/__tests__/auth.test.ts266 expect(generateQrCodeUrl).toHaveBeenCalledWith('secret-key', 'user@example.com', '[DEFAULT]');CODE
LOWpackages/auth/__tests__/auth.test.ts277 currentUser: { email: 'user@example.com' },CODE
LOWpackages/auth/__tests__/auth.test.ts286 'user@example.com',CODE
LOWpackages/auth/__tests__/auth.test.ts298 currentUser: { email: 'user@example.com' },CODE
LOWpackages/auth/e2e/phone.e2e.js1// const TEST_EMAIL = 'test@test.com';COMMENT
LOWpackages/auth/e2e/user.e2e.js1const TEST_EMAIL = 'test@test.com';CODE
LOWpackages/analytics/type-test.ts150initiateOnDeviceConversionMeasurementWithEmailAddress(analytics, 'user@example.com');CODE
LOWpackages/analytics/lib/index.ts1813 * @param {string} emailAddress - Email address, properly formatted complete with domain name e.g, 'user@example.com'.COMMENT
LOWpackages/analytics/lib/index.ts1833 * @param hashedEmailAddress sha256-hashed of normalized email address, properly formatted complete with domain name e.gCOMMENT
Example Usage Blocks7 hits · 10 pts
SeverityFileLineSnippetContext
LOWscripts/update-firebase-sdk-versions.sh9# Usage:COMMENT
LOWscripts/repro-android-build-flake.sh5# Usage:COMMENT
LOWscripts/e2e/export-slot-env.sh5# Usage:COMMENT
LOWscripts/e2e/start-emulator-slotted.sh5# Usage:COMMENT
LOWscripts/e2e/check-e2e-resources.sh17# Usage:COMMENT
LOWscripts/e2e/start-packager.sh9# Usage:COMMENT
LOWscripts/e2e/release-e2e-resources.sh7# Usage:COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMpackages/app/firebase_spm.rb621# This file is `require`d from each RNFB podspec, which CocoaPods evaluatesCOMMENT
MEDIUMpackages/app/ios_config.sh23# This file is installed as an Xcode build script in the project fileCOMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…ive/java/io/invertase/firebase/common/SharedUtils.java116 * We need to check if app is in foreground otherwise the app will crash.COMMENT