set()和add()在Firestore中有什么区别?我使用set()将文档添加到收藏中。但我无法使用add()或从文档中理解add()。
set()
add()
w41d8nur1#
由于您没有指定,我将假设您的意思是DocumentReference上的set(),CollectionReference上的add()。当您在DocumentReference上使用set()时,您正在将数据放入一个文档中,您已经通过一些唯一的ID进行了识别。(否则,您不会已经有DocumentReference对象!)正如文档中所说的,“如果文档还不存在,它将被创建。”如果文档已经存在,那么您将替换或合并新数据到其中。当您在CollectionReference上使用add()时,您将无条件地在集合中创建一个新文档,并且该新文档将具有分配给它的唯一id。您传递的数据将成为新文档的内容。
DocumentReference
pqwbnv8z2#
set()创建或覆盖单个文档&&您可以选择为要创建的文档指定IDadd()自动生成单据并自动赋予单据ID更多信息-官方文档:https://firebase.google.com/docs/firestore/manage-data/add-data
wwwo4jvm3#
在集合ref上调用add(),从而创建一个新文档。set()在文档ref上被调用,因此如果具有相同ref的文档已经存在,则它将被覆盖;否则创建新文档。
3条答案
按热度按时间w41d8nur1#
由于您没有指定,我将假设您的意思是DocumentReference上的set(),CollectionReference上的add()。
当您在
DocumentReference
上使用set()
时,您正在将数据放入一个文档中,您已经通过一些唯一的ID进行了识别。(否则,您不会已经有DocumentReference
对象!)正如文档中所说的,“如果文档还不存在,它将被创建。”如果文档已经存在,那么您将替换或合并新数据到其中。当您在CollectionReference上使用
add()
时,您将无条件地在集合中创建一个新文档,并且该新文档将具有分配给它的唯一id。您传递的数据将成为新文档的内容。pqwbnv8z2#
set()
创建或覆盖单个文档&&您可以选择为要创建的文档指定IDadd()
自动生成单据并自动赋予单据ID更多信息-官方文档:https://firebase.google.com/docs/firestore/manage-data/add-data
wwwo4jvm3#
在集合ref上调用add(),从而创建一个新文档。
set()在文档ref上被调用,因此如果具有相同ref的文档已经存在,则它将被覆盖;否则创建新文档。