![](/img/trans.png)
[英]Firebase Firestore - unable to get the value of a field in a collection
[英]Firebase - unable to nest a collection of collection
在我的 React Native 项目中,我使用 Firestore 作为我的数据库。 每当用户注册时,我都想创建一个主管批准请求。
基本上,在supervisorRequests
的集合下,应该有每个supervisor
的文档,以主管的密钥命名。 在主管文档下,我希望有一组随机生成的 ID,每个 ID 都保存请求元数据。 这是我想要的结构:
-supervisorRequests
-supervisor-1-Key
-random-id-of-request
- user: userID
- userEmail: userEmail
- requestDate: timestamp
-random-id-of-request
- user: userID
- userEmail: userEmail
- requestDate: timestamp
-supervisor-2-Key
-random-id-of-request
- user: userID
- userEmail: userEmail
- requestDate: timestamp
-random-id-of-request
- user: userID
- userEmail: userEmail
- requestDate: timestamp
-random-id-of-request
- user: userID
- userEmail: userEmail
- requestDate: timestamp
我试图实现这一目标的代码是:
const docReference = firebase.firestore().collection(`supervisorRequests`).doc(this.props.supervisorKey);
docReference.set({ user: this.props.userUID, requestDate: new Date().getTime(), userEmail: this.props.email });
但是,我的代码生成以下结构:
-supervisorRequests
-supervisor-1-Key
- user: userID
- userEmail: userEmail
- requestDate: timestamp
这不是我想要的,因为每次向主管的密钥发出新请求时,旧请求都会被覆盖。
我的代码有什么问题,我怎样才能实现我提出的第一个数据库结构?
您传递给 collection() 的字符串必须是集合的路径。 您现在传递的是文档的路径。 它通过查看字符串中的正斜杠来识别这一点。 也许您想像这样引用文档:
firebase.firestore()
.collection('supervisorRequests')
.doc(this.props.supervisorKey)
您可以使用返回的 DocumentReference 通过其 set() 方法创建文档。
只是为了完成 Doug 的回答,请注意,您可以直接将“斜线分隔的路径”传递给doc()
方法,以获取“引用指定路径处的文档的DocumentReference
实例”。
所以你也可以这样做:
firebase.firestore().doc(`supervisorRequests/${this.props.supervisorKey}`).set();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.