【问题标题】:firebase/firestore is not working but firebase/firestore/lite isfirebase/firestore 不工作,但 firebase/firestore/lite 是
【发布时间】:2021-09-07 06:24:55
【问题描述】:

我已将 Firebase Firestore 数据库用于我的 react-native 应用程序。

使用 firebase 9.0.1 更新后,我只能使用 firebase/firestore/lite 读取和写入数据,但无法通过常规 firebase/firestore 连接到 firebase。有没有人遇到这个问题或者可以提供解决方案?

"firebase": "^9.0.1", “反应”:“17.0.2”, "react-native": "0.65.1",

// firebase > config.js

import { initializeApp } from "firebase/app";

import { getAuth, signInAnonymously, onAuthStateChanged } from "firebase/auth";
import { getFirestore } from 'firebase/firestore/lite';


const firebaseConfig = {
  apiKey: "", 
  authDomain: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: "",
};


// Initialize Firebase
const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);
export const auth = getAuth(app)



// index.js
This work and can reach my firestore
import { getFirestore, doc, deleteDoc } from 'firebase/firestore/lite';

Does not work, can’t reach my firestore
import { getFirestore, doc, deleteDoc } from 'firebase/firestore/';

/////////

async function deleteDocument() {
      await deleteDoc(doc(db, "cities", "222"));
  }
  
deleteDocument()

【问题讨论】:

  • 你能分享一些你如何使用它的代码吗?您如何初始化您的应用程序以及如何导入模块。
  • @TarikHuber 如果我使用,我可以使用 firestore 删除“cities”集合中的 doc '222': import { deleteDoc, } from 'firebase/firestore/lite';但如果我使用 import { deleteDoc, } from 'firebase/firestore 它就行不通了。
  • 你试过用try-catch包裹起来看看有没有错误?
  • 对于 9.0.x 版本,您需要使用新的命令进行导入,您可以在这里找到它们:stackoverflow.com/questions/69096276/…

标签: javascript firebase react-native google-cloud-firestore


【解决方案1】:

从 Cloud Firestore 中删除数据

删除文档、字段和集合:

示例:删除你想要的“222”

const db = getFirestore(app);
const docRef = doc(db, 'cities/222');
docRef.delete(); 

如果使用 firebase 版本 > 8.x.x

import { getFirestore, doc, deleteDoc } from 'firebase/firestore/lite';
// OR
import { getFirestore, doc, deleteDoc } from 'firebase/firestore';

const store = getFirestore(app);
const docRef = doc(store, 'cities/222');

await deleteDoc(docRef);

【讨论】:

  • @Eitan 如果我的回答有用,请点击它左侧的点赞按钮 (▲)。如果它回答了您的问题,请单击复选标记 (✓) 接受它。这样其他人就知道你已经(充分地)得到了帮助。另见stackoverflow.com/help/someone-answers
  • OP 正在使用模块化 SDK。您答案中的语法是较旧的命名空间语法。
  • @Dharmaraj 哦,我明白了...我会更新答案
  • @hongdeveloper,使用 firebase 9.0.0,他们不再使用 delete()。它已更改为 deleteDoc()。
猜你喜欢
  • 2018-05-28
  • 2021-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 2023-02-21
  • 2018-03-18
  • 1970-01-01
相关资源
最近更新 更多