Describe the bug
We often store mappings of document reference paths (as strings) to values inside documents.
e.g.
{
'activityType': 'activityA',
'agents': {'products/product-a': 5.0},
}
Using the native Firestore libraries, we encountered no issues writing Firestore maps inside our documents that contain / characters in the key string. This seemingly is allowed in Firestore documents but triggers the Invalid argument (path) exception when attempting to write a document containing the map using the library.
Invalid argument (path): Paths can't be empty and must not contain '*~/[]'.: "products/product-a"
package:dart_firebase_admin/src/google_cloud_firestore/path.dart 255:7 new _StringFieldMask
package:dart_firebase_admin/src/google_cloud_firestore/path.dart 289:47 new FieldPath.from
package:dart_firebase_admin/src/google_cloud_firestore/field_value.dart 391:44 _validateUserInput
package:dart_firebase_admin/src/google_cloud_firestore/field_value.dart 369:9 _validateUserInput.<fn>
package:collection/src/list_extensions.dart 122:13 ListExtensions.forEachIndexed
package:dart_firebase_admin/src/google_cloud_firestore/field_value.dart 368:13 _validateUserInput
package:dart_firebase_admin/src/google_cloud_firestore/field_value.dart 384:9 _validateUserInput
package:dart_firebase_admin/src/google_cloud_firestore/write_batch.dart 293:3 _validateDocumentData
package:dart_firebase_admin/src/google_cloud_firestore/write_batch.dart 158:5 WriteBatch.set
package:dart_firebase_admin/src/google_cloud_firestore/reference.dart 301:54 DocumentReference.set
test/data/services/firestore_api_service_test.dart 379:54 main.<fn>.<fn>
To Reproduce
await firestore.doc("activities/new-activity").set({
'activityType': 'activityA',
'agents': {'products/product-a': 5.0}
});
Expected behavior
This should be a valid document and written to Firestore with the string key "products/product-a" in the document's list of product -> value mappings.
Describe the bug
We often store mappings of document reference paths (as strings) to values inside documents.
e.g.
Using the native Firestore libraries, we encountered no issues writing Firestore maps inside our documents that contain
/characters in the key string. This seemingly is allowed in Firestore documents but triggers theInvalid argument (path)exception when attempting to write a document containing the map using the library.To Reproduce
Expected behavior
This should be a valid document and written to Firestore with the string key
"products/product-a"in the document's list of product -> value mappings.