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
Firebase Firestore文档中的附加id字段_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore文档中的附加id字段

Firebase Firestore文档中的附加id字段,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,将id字段放在文档中是一种好的做法,还是只是浪费资源?例如,用户文档中的uid字段 upsertUserData(user) { const userRef: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`); const data = { uid: user.uid, email: user.email, displayName: use

将id字段放在文档中是一种好的做法,还是只是浪费资源?例如,用户文档中的uid字段

upsertUserData(user) {
    const userRef: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
    const data = {
        uid: user.uid,
        email: user.email,
        displayName: user.displayName,
        photoURL: user.photoURL
    }
    return userRef.set(data, { merge: true });
}
upsertUserData(用户){
const userRef:AngularFirestoreDocument=this.afs.doc(`users/${user.uid}`);
常数数据={
uid:user.uid,
电子邮件:user.email,
displayName:user.displayName,
photoURL:user.photoURL
}
返回userRef.set(数据,{merge:true});
}

有没有任何情况下我将来可能需要该字段?

从最严格的意义上说,这是浪费空间。使用Firestore SDK API,您应该始终能够使用文档的ID进行查询,并访问文档结果的ID,而不必在同一文档的字段中引用它

upsertUserData(user) {
    const userRef: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
    const data = {
        uid: user.uid,
        email: user.email,
        displayName: user.displayName,
        photoURL: user.photoURL
    }
    return userRef.set(data, { merge: true });
}

但在某些情况下(特别是JavaPOJO对象映射),您可能不想编写额外的代码来从文档中提取id并将其放入模型对象的字段中。在这种情况下,将id放在字段中可能更方便。你可以决定什么最适合你的情况。

从最严格的意义上说,这是浪费空间。使用Firestore SDK API,您应该始终能够使用文档的ID进行查询,并访问文档结果的ID,而不必在同一文档的字段中引用它

upsertUserData(user) {
    const userRef: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
    const data = {
        uid: user.uid,
        email: user.email,
        displayName: user.displayName,
        photoURL: user.photoURL
    }
    return userRef.set(data, { merge: true });
}

但在某些情况下(特别是JavaPOJO对象映射),您可能不想编写额外的代码来从文档中提取id并将其放入模型对象的字段中。在这种情况下,将id放在字段中可能更方便。你可以决定什么最适合你的情况。

你消除了我的疑虑。谢谢你消除了我的疑虑。谢谢