Reactjs Firebase Firestore onSnapshot PayloadTooLargeError:Expo/React本机项目上的请求实体太大
我有一个Expo/React原生项目,订阅以收听Firestore收藏更新。我将Expo SDK从39更新到40,onSnapshot回调函数在被调用时开始抛出“PayloadTooLargeError:请求实体太大”。我没有更新集合中的文档,也没有更改代码。Firebase版本是“Firebase”:“7.9.0”,升级Expo SDK时我没有更新它 有人知道这是什么原因以及如何解决吗? 我订阅像这样的收藏更新Reactjs Firebase Firestore onSnapshot PayloadTooLargeError:Expo/React本机项目上的请求实体太大,reactjs,firebase,google-cloud-firestore,expo,Reactjs,Firebase,Google Cloud Firestore,Expo,我有一个Expo/React原生项目,订阅以收听Firestore收藏更新。我将Expo SDK从39更新到40,onSnapshot回调函数在被调用时开始抛出“PayloadTooLargeError:请求实体太大”。我没有更新集合中的文档,也没有更改代码。Firebase版本是“Firebase”:“7.9.0”,升级Expo SDK时我没有更新它 有人知道这是什么原因以及如何解决吗? 我订阅像这样的收藏更新 componentDidMount = () => { //Subsc
componentDidMount = () => {
//Subscribe for collection changes
const unSubscribeUpdates = this.unsubscribe = db.collection("test_collection")
.onSnapshot({includeMetadataChanges: false}, this.onTestCollectionChanged).bind(this);
//Subscribe for favourite changes
const unSubscribeFavouriteUpdates = this.unsubscribe = db.collection("favourites")
.doc(Firebase.auth().currentUser.uid)
.onSnapshot({includeMetadataChanges: false},this.onFavouritesChanged).bind(this);
this.setState({ collection_items: items, favourites:favourites, unSubscribeUpdates: unSubscribeUpdates, unSubscribeFavouriteUpdates:unSubscribeFavouriteUpdates });
onFavouritesListChanged = (doc) => {
console.log("onFavouritesListChanged for user :" + Firebase.auth().currentUser.uid);
.....
onVideoListChanged = (snapshot) => {
console.log("onVideoListChanged");
console.log("videos length " + this.state.videos.length);
听众是这样的
componentDidMount = () => {
//Subscribe for collection changes
const unSubscribeUpdates = this.unsubscribe = db.collection("test_collection")
.onSnapshot({includeMetadataChanges: false}, this.onTestCollectionChanged).bind(this);
//Subscribe for favourite changes
const unSubscribeFavouriteUpdates = this.unsubscribe = db.collection("favourites")
.doc(Firebase.auth().currentUser.uid)
.onSnapshot({includeMetadataChanges: false},this.onFavouritesChanged).bind(this);
this.setState({ collection_items: items, favourites:favourites, unSubscribeUpdates: unSubscribeUpdates, unSubscribeFavouriteUpdates:unSubscribeFavouriteUpdates });
onFavouritesListChanged = (doc) => {
console.log("onFavouritesListChanged for user :" + Firebase.auth().currentUser.uid);
.....
onVideoListChanged = (snapshot) => {
console.log("onVideoListChanged");
console.log("videos length " + this.state.videos.length);
这就是错误所在
onVideoListChangedPayloadTooLargeError:请求实体太大 在readStream(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/@expo/dev server/node_modules/raw body/index.js:155:17) 在getRawBody(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/@expo/dev server/node_modules/raw body/index.js:108:12) 读取时(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/@expo/dev server/node_modules/body parser/lib/read.js:77:3) 在jsonParser(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/@expo/dev server/node_modules/body parser/lib/types/json.js:135:5) 调用时(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/connect/index.js:239:7) 接下来(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/connect/index.js:183:5) 在serveStatic(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/service static/index.js:75:16) 调用时(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/connect/index.js:239:7) 接下来(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/connect/index.js:183:5) 调用时(/Users/nnn/.nvm/versions/node/v14.15.4/lib/node_modules/expo cli/node_modules/connect/index.js:248:3)
事实证明,这在Expo中不是问题,而是在NodeJs 14中将过长的字符串打印到console.log输出中时出现的问题。这是cnosole.log输出的警告。听起来您有Expo的错误报告,而不是堆栈溢出的编程问题。