Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Firebase Firestore onSnapshot PayloadTooLargeError:Expo/React本机项目上的请求实体太大_Reactjs_Firebase_Google Cloud Firestore_Expo - Fatal编程技术网

Reactjs Firebase Firestore onSnapshot PayloadTooLargeError:Expo/React本机项目上的请求实体太大

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

我有一个Expo/React原生项目,订阅以收听Firestore收藏更新。我将Expo SDK从39更新到40,onSnapshot回调函数在被调用时开始抛出“PayloadTooLargeError:请求实体太大”。我没有更新集合中的文档,也没有更改代码。Firebase版本是“Firebase”:“7.9.0”,升级Expo SDK时我没有更新它

有人知道这是什么原因以及如何解决吗?

我订阅像这样的收藏更新

  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);
这就是错误所在

onVideoListChanged
PayloadTooLargeError:请求实体太大 在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的错误报告,而不是堆栈溢出的编程问题。