从Firestore URL抓取显示404 - URL不正确?



我正在使用Next.js从我的Firestore数据库获取数据,但我一直在控制台上得到一个错误,说明GET (FirestoreDatabaseURL) 404 (not found).

当我尝试任何其他json数据库,如myfakestore或jsonplaceholder,我的代码工作(我尝试了getServerSideProps和抓取与UseState),工作得很漂亮。但不是来自我自己的数据库。用Postman试过了,但是也不行

我试图找到不同的方法来获取数据库URL,但我只找到这一种格式:

https://PROJECTID.firebaseio.com

服务器位于us-central,这也有助于确定URL。在测试时,我得到了错误FetchError: invalid json response body at https://PROJECTID.firebaseio.com/ reason: Unexpected token F in JSON at position 0

我发现它实际上不是返回json,而是HTML。这是我的工作代码:

const [showProducts, setShowProducts] = useState()
const apiData = 'https://celeste-73695.firebaseio.com/'
let displayProducts
function pullJson () {
fetch(apiData)
.then(response => response.json())
.then(responseData => {
displayProducts = responseData.map(function(product){
return (
<p key={product.id}>{product.title}</p>
)
})
console.log(responseData)
setShowProducts(displayProducts)
})
//return
}
useEffect(() => {
pullJson()
},[])

和我的firebase.js文件

import firebase from 'firebase'; 
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "***",
authDomain: "***",
projectId: "***",
storageBucket: "***",
messagingSenderId: "***",
appId: "***",
measurementId: "***"
};
const app = !firebase.apps.length 
? firebase.initializeApp(firebaseConfig)
: firebase.app();
const db = app.firestore();
export default db;
谁能给我指个正确的方向?提前谢谢。

databaseURL属性是用于Firebase实时数据库的,您可能还没有创建它。databaseURL属性不是使用Firestore所必需的,所以你应该能够使用你所拥有的配置数据来访问它。

您可能已经创建了实时数据库,但没有使用firebase配置配置它。我建议您阅读实时数据库的这些文档。

要配置firebase firestore,您需要执行以下操作:

import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
const firebaseConfig = {
// ...
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
// Initialize Cloud Firestore and get a reference to the service
const db = getFirestore(app);

并确保导出将在您的项目中使用的db引用。之后,你就可以开始使用firestore了,就像这里记录的那样,因为你已经尝试过将它与URL一起使用,你可能需要改变实现来使用它,就像上面的文档

所示

最新更新