'Firestore getDoc wont work when using pathSegments in react

I'm trying to do a very simple data load from firebase but it wont work when I use path segments in react

something very simple as

import { getFirestore, getDoc, getDocs, setDoc, doc, updateDoc, getCollection, collection } from "firebase/firestore";
import { firebaseConfig } from "config";

// Initialize Firebase
const app = initializeApp(firebaseConfig);
const firestore = getFirestore(app);


getDoc(doc(firestore, 'collection', ['path','to','document']));

it will throw an exception

Uncaught (in promise) TypeError: n.split is not a function

how can i do to pass an array for that function?



Solution 1:[1]

The doc() doesn't take an array as param but path segments (strings). Try using the spread syntax on array as shown below:

getDoc(doc(firestore, 'collection', ...['path','to','document']));
// spread syntax here                ?


// Equivalent to:
getDoc(doc(firestore, 'collection', 'path', 'to', 'document'));

doc() function signature from the documentation:

export declare function doc(firestore: Firestore, path: string, ...pathSegments: string[]): DocumentReference<DocumentData>;

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1