类型错误:listingsRef.add 不是函数。 (在 'listingsRef.add(updatedUploadObjects)' 中,'listingsRef.add' 未定义)
Posted
技术标签:
【中文标题】类型错误:listingsRef.add 不是函数。 (在 \'listingsRef.add(updatedUploadObjects)\' 中,\'listingsRef.add\' 未定义)【英文标题】:TypeError: listingsRef.add is not a function. (In 'listingsRef.add(updatedUploadObjects)', 'listingsRef.add' is undefined)类型错误:listingsRef.add 不是函数。 (在 'listingsRef.add(updatedUploadObjects)' 中,'listingsRef.add' 未定义) 【发布时间】:2022-01-21 03:57:41 【问题描述】:我正在开发一个列表应用程序,并使用 firebase 作为我的后端,在我添加 .orderBy 语句以通过创建日期对数据进行排序之前,一切正常,我可以在应用程序上更新新帖子,但在我添加之后.orderBy('createdAt', 'desc') 在列表中,我无法更新任何新帖子并且出现错误 "TypeError: listingsRef.add 不是函数。(在'listingsRef.add(updatedUploadObjects)' 中,'listingsRef.add' 未定义) 代码如下:
import setFavoriteItems from '../../../favorites/redux'
import firebase from '../../../api/firebase/config'
import ServerConfiguration from '../../../../ServerConfiguration'
const savedListingsRef = firebase
.firestore()
.collection(ServerConfiguration.database.collection.SAVED_LISTINGS)
.orderBy('createdAt', 'desc')
const listingsRef = firebase
.firestore()
.collection(ServerConfiguration.database.collection.LISTINGS)
.orderBy('createdAt','desc')
const ListingCategoriesRef = firebase
.firestore()
.collection(ServerConfiguration.database.collection.CATEGORIES)
.orderBy('order')
还有这个:
if (selectedItem)
listingsRef
.doc(selectedItem.id)
.update( ...updatedUploadObjects, photo: coverPhoto )
.then(docRef =>
callback( success: true )
)
.catch(error =>
console.log(error)
callback( success: false )
)
else
listingsRef
.add(updatedUploadObjects)
.then(docRef =>
if (docRef.id)
listingsRef
.doc(docRef.id)
.update( id: docRef.id, photo: coverPhoto )
callback( success: true )
)
.catch(error =>
console.log(error)
callback( success: false )
)
【问题讨论】:
您在此处共享的代码很多。你确定这是minimum needed to reproduce this problem? 感谢您的回复!我现在有最少的代码! 【参考方案1】:这定义了一个CollectionReference
:
const savedListingsRef = firebase
.firestore()
.collection(ServerConfiguration.database.collection.SAVED_LISTINGS)
如果您检查该链接,您将看到 CollectionReference
具有 add
方法,这意味着您可以向其中添加文档。
这定义了一个Query
:
const savedListingsRef = firebase
.firestore()
.collection(ServerConfiguration.database.collection.SAVED_LISTINGS)
.orderBy('createdAt', 'desc')
如果您检查最后一个链接,您会发现查询没有 add
方法,因此您不能 add
查询。
您还需要保留CollectionReference
,以便您可以为此致电add()
。
【讨论】:
您好弗兰克,感谢您的回复!我是新手,看到你的回答后,我还有一个问题:你给我看的第二个代码是一个查询,但我发现第一个和第二个之间的唯一不同是我添加了 .orderBy 语句。那么如何将其从查询变为集合呢?谢谢! 谢谢,我明白了,因为 orderBy 返回了一个查询,所以我无法在其中添加数据,但是如何将查询更改为 CollectionReference?以上是关于类型错误:listingsRef.add 不是函数。 (在 'listingsRef.add(updatedUploadObjects)' 中,'listingsRef.add' 未定义)的主要内容,如果未能解决你的问题,请参考以下文章
错误类型错误:_co.deleteConsulta 不是函数