Here's my basic setup:
import {
Admin,
Resource,
ListGuesser,
EditGuesser,
ShowGuesser,
SimpleShowLayout,
Show,
Create, SimpleForm,
List,
Edit,
Datagrid,
TextField,
} from "react-admin";
// import { dataProvider } from "./dataProvider";
// import { authProvider } from "./authProvider";
import { PostList, PostShow, PostCreate, PostEdit } from "./posts";
import UserIcon from '@material-ui/icons/People';
import CommentIcon from '@material-ui/icons/Comment';
import CustomLoginPage from "./LoginPage";
import {
FirebaseAuthProvider,
FirebaseDataProvider,
} from 'react-admin-firebase';
import "firebase/compat/firestore";
import "firebase/compat/storage";
import firebase from "firebase/compat/app";
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID
}
let firebaseApp;
if (!firebase.apps.length) {
firebaseApp = firebase.initializeApp(firebaseConfig);
} else {
firebaseApp = firebase.app(); // if already initialized, use that one
}
// const db = firebase.firestore(); // Add this line
// const storage = firebase.storage();
const dataProvider = FirebaseDataProvider(firebaseConfig, {
logging: true,
// watch: ['posts', 'comments'],
// rootRef: 'rootrefcollection/QQG2McwjR2Bohi9OwQzP',
// rootRef: 'test/p4BPibI6rQyoYjqlPP0Q',
// rootRef: 'test/sandbox',
app: firebaseApp,
// watch: ['posts'];
// dontwatch: ['comments'];
// persistence: 'local',
persistence: 'session',
// disableMeta: true
dontAddIdFieldToDoc: true,
lazyLoading: {
enabled: true,
},
// firestoreCostsLogger: {
// enabled: true,
// },
});
console.log("Firestore instance: ", dataProvider);
console.log("Firebase App: ", firebaseApp);
const authProvider = FirebaseAuthProvider(firebaseConfig);
export const App = () => (
<Admin dataProvider={dataProvider} authProvider={authProvider} loginPage={CustomLoginPage}>
<Resource
name="posts"
list={PostList}
show={PostShow}
create={PostCreate}
edit={PostEdit}
/>
</Admin>
);
I have no problem accessing resources with Firebase library directly:
const db = firebaseApp.firestore();
db.collection("posts").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
}).catch((error) => {
console.log("Error getting documents: ", error);
});
Also seems to let me on just fine with the test user / pass I setup in Firebase so seems at least the API creds are ok. Since this is my first time using this library, I'm sure it's something really dumb that I'm overlooking? Whenver I add the <Resource /> into <Admin />, I get this error:
FirebaseError: [code=invalid-argument]: Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore

Thanks in advance for any help!
Here's my basic setup:
I have no problem accessing resources with Firebase library directly:
Also seems to let me on just fine with the test user / pass I setup in Firebase so seems at least the API creds are ok. Since this is my first time using this library, I'm sure it's something really dumb that I'm overlooking? Whenver I add the
<Resource />into<Admin />, I get this error:Thanks in advance for any help!