V 9 Ошибка FirebaseError: Ожидается, что первым аргументом для collection() будет ссылка на коллекцию, ссылка на документ или хранилище FirebaseFirestore

# #javascript #firebase #google-cloud-firestore

Вопрос:

не могу добавить новый документ в firestore, я новичок в vue и firestore. Это мой конфигурационный файл. [это мой каталог служб данных>>>C:UsersLENOVODesktopcovidcare-ytu-clinicsrcServicesDataServices.js][1]» src=»https://i.stack.imgur.com/D2k8x.png»><a rel=Это каталог vue>>>C:UsersLENOVODesktopcovidcare-ytu-clinicsrcviewsClientForm.vue » src=»https://i.stack.imgur.com/ThNkU.png»></a></p>
<p>firebase.js</p>
<pre class= import { initializeApp } from "firebase/app" import { getAuth, connectAuthEmulator } from "firebase/auth" import { getFirestore, connectFirestoreEmulator } from "firebase/firestore" const firebaseConfig = { apiKey: projectId: "covidcare-ytu-clinic", } // Initialize Firebase const firebaseApp = initializeApp(firebaseConfig) const db = getFirestore() connectFirestoreEmulator(db, "localhost", 8081) const auth = getAuth(firebaseApp) connectAuthEmulator(auth, "http://localhost:9099") export default { db, auth }

Это мое Dataservice.js

 import { db } from "@/firebase"
import { addDoc, collection } from "firebase/firestore"
class dataService {
  /* async getAll() {
    const querySnapshot = await getDocs(collection(db, "clients"))
    querySnapshot.forEach((doc) => {
      console.log(doc.id, "=> ", doc.data())
    })
  }*/
  async create(data) {
    try {
      const docRef = await addDoc(collection(db, "cli"), data)
      console.log("Document written with ID: ", docRef.id)
    } catch (e) {
      console.error("Error adding document: ", e)
    }
  }
  /*
  update(id, data) {
    return db.collection("clients").doc(id).updateDoc(data)
  }
  delete(id) {
    return db.collection("clients").doc(id).delete()
  }*/version-8 firebase
}
export default new dataService()

 

Вот моя ошибка в базе данных ..Я не смог добавить ни одного документа в свой firestore.Это отнимает у меня так много времени .

 
DataServices.js:15 Error adding document:  FirebaseError: Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore

 

Комментарии:

1. Можете ли вы console.log(db) прямо перед addDoc() заявлением поделиться скриншотом вывода ? Я бы попробовал импортировать, используя относительный путь, а @/firebase не один раз.

2. да, сэр@Dharmaraj, я уже console.log(db) до addDoc() .

3. Можете ли вы поделиться скриншотом того, что он регистрирует ?

4. в консоли. >>> появляются неопределенные значения.

5. Тогда это неправильный путь.. можете ли вы поделиться скриншотом своей структуры каталогов ?

Ответ №1:

Я нашел ответ .Когда кто-то сталкивается с подобными проблемами , как я, я надеюсь, что это полезно . я удаляю значение по умолчанию в файле конфигурации ,где я должен написать экспорт { db, auth} .

Ответ №2:

В Dataservice.js , попробуйте использовать относительный путь для импорта БД:

 // Remove this
// import { db } from "@/firebase"

// Try this
import { db } from "../../firebase" // relative path to config file
 

Комментарии:

1. все еще получаю ту же ошибку, сэр

2. @Bubblegum можете ли вы поделиться своей структурой каталогов ?

3. Да @Dharmaraj Я отредактировал свой вопрос, сэр

4. @Bubblegum в dataservice, вы изменили путь импорта на import { db } from "../firebase" ? или ../../firebase как в моем ответе

5. импорт { db } из «../firebase» в Dataservice.js сэр