解析服务器升级到 v4.2:无法确保用户电子邮件地址的唯一性

Parse Server Upgrade to v4.2: Unable to ensure uniqueness for user email addresses

我最近将解析服务器升级到 v4.2。我还将 Mongo 更新为 v4.2(这是一个副本集配置)。现在,当解析服务器启动时,会出现以下错误“无法确保用户电子邮件地址的唯一性:已尝试确保已重复的 class 的字段唯一性。”

详细错误是这样的:

{
"message": "Unable to ensure uniqueness for user email addresses: Tried to ensure field uniqueness for a class that already has duplicates.",
"code": 137,
"level": "warn",
"stack": "Error: Tried to ensure field uniqueness for a class that already has duplicates.\n    at _adaptiveCollection.then.catch.error (/parse/node_modules/parse-server/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js:569:15)\n    at <anonymous>\n    at process._tickDomainCallback (internal/process/next_tick.js:229:7)"

错误是由于 _User class 的用户名和电子邮件字段具有相同的数据。 关于如何解决问题或使解析服务器不执行此检查的任何想法。

错误消息表示无法在 email 字段上创建唯一索引。

唯一索引确保在email字段中一个值只能出现一次,换句话说,它是唯一出现的。如果 email 字段中已经存在违反唯一性规则的重复值,则 MongoDB 无法创建此类索引,换句话说,相同的电子邮件地址已在集合中多次出现。

请记住,Parse Server 4.0 introduced 字段 emailusername 的 case-insensitive 索引。如果您已经有一个用户的电子邮件地址为 email@example.com,另一个用户的电子邮件地址为 EMAIL@example.com,那么索引创建也会失败。

解决方案是删除重复的电子邮件条目并重新启动 Parse Server,以便再次尝试创建索引。