当引用文档时,Firestore要求文档引用路径必须包含偶数个段,否则会抛出'Firestore Document references must have an even number of segments”错误。
为了解决此问题,我们需要检查引用文档的路径是否包含偶数个段,如果不是,则需要修正路径。以下是一个示例代码:
// 正确的文档引用路径
DocumentReference docRef1 = db.collection("users").document("user1");
// 错误的文档引用路径,包含奇数个段
DocumentReference docRef2 = db.document("users/user1/profile");
// 检查文档引用路径
if (docRef2.getPathSegments().size() % 2 != 0) {
// 修正文档引用路径
docRef2 = db.collection(docRef2.getPathSegments().get(0)).document(docRef2.getPathSegments().get(1));
}
在上述示例中,我们先定义了两个文档引用路径,其中docRef2
包含奇数个段,因此会抛出'Firestore Document references must have an even number of segments”错误。
然后我们使用getPathSegments()
方法获取文档引用路径中的所有段,并通过检查其数量来检查是否为偶数个段。如果文档引用路径不是偶数个段,则使用get()
方法来获取第一个和第二个段,然后使用它们来创建一个新的文档引用路径。