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.

13.1 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,288 GitHub stars. SynthScan v2.0 examined 220,061 lines of code across 1301 source files, recording 454 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 13.1 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).

13.1
Adjusted Score
13.1
Raw Score
100%
Time Factor
2026-07-14
Last Push
12.3K
Stars
TypeScript
Language
220.1K
Lines of Code
1.3K
Files
454
Pattern Hits
2026-07-14
Scan Date
0.16
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 211HIGH 0MEDIUM 16LOW 227

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 454 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 Indicators211 hits · 2590 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.js65 post.should.not.be.an.instanceof(Post);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
CRITICALpackages/firestore/e2e/DocumentSnapshot/data.e2e.js99 data.number.should.be.a.Number();CODE
CRITICALpackages/firestore/e2e/DocumentSnapshot/data.e2e.js108 data.boolTrue.should.be.a.Boolean();CODE
151 more matches not shown…
Hyper-Verbose Identifiers170 hits · 180 pts
SeverityFileLineSnippetContext
LOWtests/app.js262 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/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.js38function androidCoverageFileExists(deviceId) {CODE
LOWtests/scripts/pull-native-coverage.js79async function pullAndroidCoverageWithRetry(deviceId, options = {}) {CODE
LOWtests/scripts/pull-native-coverage.js145function runJacocoAndroidTestReport() {CODE
LOWtests/scripts/pull-native-coverage.js163function deleteProcessedAndroidCoverageEc(ecFilePath) {CODE
LOWtests/e2e/firebase.test.js32function logCloudPressureAnalysisPointer(context) {CODE
LOWtests/e2e/firebase.test.js109function resolveDetoxConfigurationName() {CODE
LOWtests/e2e/firebase.test.js292function resolveAndroidEmulatorPort(serial) {CODE
LOWtests/e2e/firebase.test.js368function forceStopAndroidTestingApps(label) {CODE
LOWtests/e2e/firebase.test.js386async function waitForAndroidInstrumentationStopped(label, timeoutMs = 30000) {CODE
LOWtests/e2e/firebase.test.js408function clearStaleMacOsTestingForSharedJetPort(label) {CODE
LOWtests/e2e/firebase.test.js432async function ensureAndroidJetHostClear(label = 'android-jet-host-clear') {CODE
LOWtests/e2e/firebase.test.js489async function waitForAndroidEmulatorReady() {CODE
LOWtests/e2e/firebase.test.js718function isRetryableJetSessionFailure(output) {CODE
LOWtests/e2e/firebase.test.js742function isRetryableCloudQuotaFailure(jetOutput) {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.js110exports.waitForNativeDbListenerReady = async function waitForNativeDbListenerReady(CODE
LOWpackages/database/e2e/helpers.js127exports.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/__tests__/harnessCommittedDefaults.test.ts111function listTrackedHarnessTestSources(): string[] {CODE
LOWpackages/app/__tests__/expoPluginPackageExports.test.ts26function discoverPackageNamesWithAppPlugin(): string[] {CODE
LOWpackages/app/__tests__/specNativeParityHelper.ts120export function extractAndroidReactMethods(javaContent: string): string[] {CODE
LOWpackages/app/__tests__/specNativeParityHelper.ts218export function discoverPackageSpecContexts(CODE
LOWpackages/app/lib/modular.ts115export function setReactNativeAsyncStorage(CODE
LOWpackages/app/lib/internal/asyncStorage.ts47export async function getReactNativeAsyncStorageInternal(): Promise<AsyncStorageStatic> {CODE
LOWpackages/app/lib/internal/asyncStorage.ts52export function setReactNativeAsyncStorageInternal(CODE
LOWpackages/app/lib/internal/web/structuredClone/index.js212export function makeStructuredCloneAvailable() {CODE
LOWpackages/app/lib/internal/registry/modular.ts59export function getOrCreateModularInstance<T extends FirebaseModule>(CODE
LOWpackages/app/lib/internal/registry/app.ts222export function setReactNativeAsyncStorage(asyncStorage: ReactNativeAsyncStorage): void {CODE
LOWpackages/app/lib/internal/registry/nativeModule.ts52function nativeModuleMethodWrapped(CODE
LOWpackages/app/lib/internal/registry/nativeModule.ts78function createRoutingCompositeProxy(CODE
LOWpackages/app/lib/internal/registry/nativeModule.ts156function createSingleHostComposite(CODE
LOWpackages/app/lib/internal/registry/nativeModule.ts245function subscribeToNativeModuleEvent(eventName: string): void {CODE
LOWpackages/app/lib/common/validate.ts25export function objectKeyValuesAreStrings(object: unknown): boolean {CODE
LOWpackages/app/lib/common/validate.ts209export function validateOptionalNativeDependencyExists(CODE
LOWpackages/firestore/type-test.ts354function acceptRootDocumentSnapshot(_snap: FirestoreDocumentSnapshot<DocumentData>) {}CODE
LOWpackages/firestore/type-test.ts607async function withTestDocAndInitialData(CODE
LOWpackages/firestore/consumer-type-test.ts379function rootTransactionUpdateFunction(tx: Transaction): Promise<DocumentSnapshot<DocumentData>> {CODE
LOWpackages/firestore/consumer-type-test.ts635async function withTestDocAndInitialData(CODE
LOW…tore/__tests__/pipelines-fluent-serialization-cases.ts804export function assertCoversAllExpressionMethods(cases: FluentParityCase[]): void {CODE
LOWpackages/firestore/lib/modular.ts350export function clearIndexedDbPersistence(firestore: Firestore): Promise<void> {CODE
LOWpackages/firestore/lib/modular.ts529export function getPersistentCacheIndexManager(CODE
LOWpackages/firestore/lib/modular.ts535export function enablePersistentCacheIndexAutoCreation(CODE
LOWpackages/firestore/lib/modular.ts541export function disablePersistentCacheIndexAutoCreation(CODE
LOWpackages/firestore/lib/modular.ts547export function deleteAllPersistentCacheIndexes(CODE
LOWpackages/firestore/lib/FieldPath.ts82export function fieldPathOrSegmentsToNative(fieldPath: FieldPath | string[]): string[] {CODE
LOWpackages/firestore/lib/FirestoreDocumentReference.ts49export function provideCollectionReferenceClass(CODE
LOWpackages/firestore/lib/FirestoreDocumentReference.ts67export function provideDocumentSnapshotClass(CODE
LOWpackages/firestore/lib/web/RNFBFirestoreModule.ts131function getCachedFirestoreInstance(appName: string, databaseId: string): Firestore {CODE
LOWpackages/firestore/lib/web/pipelines/pipeline.ts30async function executeWebSdkPipelineSnapshot(CODE
LOW…tore/lib/web/pipelines/pipeline_snapshot_serializer.ts113export function serializeWebSdkPipelineSnapshot(CODE
LOW…firestore/lib/web/pipelines/pipeline_bridge_factory.ts41function createPipelineRuntimeImportError(message: string): Error {CODE
110 more matches not shown…
Modern AI Meta-Vocabulary15 hits · 37 pts
SeverityFileLineSnippetContext
MEDIUMscripts/run-full-tests.sh32# In case of error send output to console for agentic troubleshootingCOMMENT
MEDIUM.github/workflows/scripts/android-e2e-detox.sh2# android-emulator-runner executes each script: line via sh -c; keep orchestration here.COMMENT
MEDIUMokf-bundle/new-architecture/migration-work-queue.md173| **3.5** | Guardrails — spec↔native parity + codegen-drift CI (**gates 4**) | **done** | all migrated packages — [§ PhaCODE
MEDIUMokf-bundle/testing/running-e2e.md616. **One e2e at a time** — never overlap `:test-cover` runs on one host. All platforms share Metro `:8081` and the test-CODE
MEDIUMokf-bundle/testing/running-e2e.md87#### Test-runner host orchestration (log triage only)COMMENT
MEDIUMokf-bundle/testing/running-e2e.md89**No commands to run from this section** — for interpreting `:test-cover` logs and CI artifacts only. Patch workflow: [dCODE
MEDIUMokf-bundle/testing/change-authoring-workflow.md261- **Evidence required:** [§ validation evidence](#validation-evidence-blocking) must be recorded before `commit_gate` clCODE
MEDIUMokf-bundle/testing/coverage-design.md156- **Transfer:** patched test-runner/mocha-remote WS only (`coverage-ready` → `pull-coverage` → `coverage-data` → `coveraCODE
MEDIUMokf-bundle/ci-workflows/android.md60| 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.md20Related 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.md159### E2E test app orchestration (Detox + Jet)COMMENT
MEDIUMokf-bundle/ci-workflows/ios.md200| 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.md257# Detox orchestration inside the app processCOMMENT
MEDIUMokf-bundle/ci-workflows/ios.md351# Disconnect resource context (+ orchestrate phase when defer-run enabled)COMMENT
Over-Commented Block32 hits · 32 pts
SeverityFileLineSnippetContext
LOWjest.config.js1module.exports = {COMMENT
LOWtests/globals.js21import shouldMatchers from 'should';COMMENT
LOWtests/macos/io.invertase.testing-macOS/AppDelegate.mm61{COMMENT
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/repro-android-build-flake.sh1#!/bin/bashCOMMENT
LOWpackages/crashlytics/ios_config.sh1#!/usr/bin/env bashCOMMENT
LOW…tics/ios/RNFBCrashlytics/RNFBCrashlyticsInitProvider.m21#import <FirebaseCoreExtension/FIRComponent.h>COMMENT
LOWpackages/app/ios_config.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/app/firebase_json.rb1# frozen_string_literal: trueCOMMENT
LOWpackages/app/ios/RNFBApp/RNFBSharedUtils.h21#import <FirebaseCore/FirebaseCore.h>COMMENT
LOWpackages/app/ios/RNFBApp/RNFBAppModule.mm21COMMENT
LOWpackages/app/lib/internal/web/memidb/lib/scheduling.js1// When running within Node.js (including jsdom), we want to use setImmediateCOMMENT
LOW…ore/ios/RNFBFirestore/RNFBFirestoreCollectionModule.mm21#import <RNFBFirestore/RNFBFirestore-Swift.h>COMMENT
LOW…va/io/invertase/firebase/auth/NativeRNFBTurboAuth.java1601 public void onCodeSent(COMMENT
LOWpackages/auth/e2e/auth.e2e.js1161 // await firebase.auth().setTenantId('testTenantId');COMMENT
LOWpackages/storage/e2e/StorageTask.e2e.js381 snapshotProperties(snapshot);COMMENT
LOW…ges/functions/ios/RNFBFunctions/RNFBFunctionsModule.mm21#import "RNFBApp/RCTConvert+FIRApp.h"COMMENT
LOW…ons/ios/RNFBFunctions/RNFBFunctionsStreamHandler.swift21COMMENT
LOW…tions/ios/RNFBFunctions/RNFBFunctionsCallHandler.swift21COMMENT
LOWpackages/perf/e2e/Trace.e2e.js61 const { getPerformance, trace } = perfModular;COMMENT
LOWpackages/perf/e2e/Trace.e2e.js81 // return Promise.resolve();COMMENT
LOWpackages/perf/e2e/HttpMetric.e2e.js101 // }COMMENT
LOWpackages/messaging/e2e/messaging.e2e.js21}COMMENT
LOW…ges/analytics/ios/RNFBAnalytics/RNFBAnalyticsModule.mm21#if __has_include(<RNFBAnalytics/RNFBAnalytics-Swift.h>)COMMENT
LOWpackages/analytics/lib/web/api.ts21} from '../types/web';COMMENT
LOWpackages/analytics/lib/web/api.ts281COMMENT
LOWpackages/analytics/lib/web/api.ts301 // affiliation: 'af',COMMENT
LOW.github/reaction.yml1# Configuration for reaction-comments - https://github.com/dessant/reaction-commentsCOMMENT
LOW.github/reaction.yml21# pulls:COMMENT
LOW.github/workflows/create_test_patches.yml121 # Then run the issue commenter that dynamically de-references the artifact on workflow_runCOMMENT
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/RNFBAuthModule.mm719 // NOTE: This variable has NO PURPOSE AT ALL, it isCOMMENT
LOWpackages/auth/ios/RNFBAuth/RNFBAuthModule.mm1388 // NOTE: This variable has NO PURPOSE AT ALL, it isCOMMENT
LOWpackages/auth/ios/RNFBAuth/RNFBAuthModule.mm1520 // 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 Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/update-firebase-sdk-versions.sh9# Usage:COMMENT
LOWscripts/repro-android-build-flake.sh5# Usage:COMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
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