问题
I've a collection with contacts with a structure like:
name: 'XPTO'
emails: { susan@xpto.com: 'Susan', fred@xpto.com: 'Fred' }
But the query will not return result:
db.firestore().collection('contacts').where('emails.susan@xpto.com', '==', 'Susan').get().then(...
Because of the dot at "susan@xpto.com"
How to escape the dot?
I've tried ``
and [ ]
and didn't work.
回答1:
The documentation that suggests you should escape fields using backticks is actually not correct. It's in the process of being fixed. Instead, you should use FieldPath to build a path to the field to query:
db.firestore()
.collection('contacts')
.where(new FieldPath('emails', 'susan@xpto.com'), '==', 'Susan').
来源:https://stackoverflow.com/questions/49396148/firestore-query-properties-with-special-characters