swift 领域设备同步“禁止对服务'mongodb-atlas'执行操作:没有为此服务配置规则”错误

flvtvl50  于 2023-08-02  发布在  Swift
关注(0)|答案(2)|浏览(110)

我正在开发一个使用SwiftRealm数据库的移动的应用程序。
我配置了Realm Device Sync,并尝试将custom user data添加到我创建的集群中。
尽管我看了很多关于realm permissions的教程,但我还是不知道应用程序内权限有什么问题
下面是我用来添加Custom User Data的身份验证函数

func login() {
        isLoading = true
        errorMessage = nil
        
        
        let credentials = Credentials.emailPassword(email: username, password: password)
        
        DispatchQueue.main.async {
            app.login(credentials: credentials) { [weak self] result in
                switch (result) {
                case .failure(let error):
                    print(String(describing: error))
                    self?.errorMessage = error.localizedDescription
                    
                case .success(let user):
                    if user.customData.isEmpty {
                        let client = user.mongoClient("mongodb-atlas")
                        let database = client.database(named: "UserAPI")
                        let collection = database.collection(withName: "Users")
                        // Insert the custom user data object
                        let customUserData: Document = [
                            "_id": AnyBSON(user.id),
                            "email": .string(self!.email),
                            "province": .string(self!.province),
                            "_partition": .string(user.id)
                        ]
                        collection.insertOne(customUserData) {result  in
                            switch result {
                            case .failure(let error):
                                print("Failed to insert document: \(error.localizedDescription)")
                            case .success(let newObjectId):
                                print("Inserted custom user data document with object ID: \(newObjectId)")
                            }
                        }
                    }
                }
                self?.isLoading = false
            }
        }
    }

字符串
但是当我尝试创建一个新用户时,它成功地创建了一个。问题是,当添加Custom User Data时,它会返回如下错误:
Failed to insert document: no rule exists for namespace 'UserAPI.Users'
当我检查MongoDB日志时,我可以更详细地看到错误:

的数据
我的Custom User Data设置:


我的应用权限:


任何帮助将被赞赏,我挣扎与这个错误3天,提前感谢。

pkwftd7m

pkwftd7m1#

@GrandSirr -你有没有试过设置“用户可以读写所有数据”权限模板(至少对于开发来说)?
另外,您实际的“用户”收藏是什么?用户自定义数据应该是一个单独的集合,因为用户自定义数据的大小是有限的。
我的流程-使用电子邮件密码登录用户-设置数据库触发器以创建具有相关字段的新用户文档,用户可以稍后在应用程序的“配置文件设置”页面中填写这些字段,以及另一个触发器以在单独的用户自定义数据集合中创建文档,以保存某些权限角色或订阅通知等。

y0u0uwnf

y0u0uwnf2#

我和你有同样的问题。这是在monggo db日志获取错误

但我使用Next.js来处理这样的代码

const app = new Realm.App({ id: '' });
    const credentials = Realm.Credentials.anonymous();

    try {
      const user = await app.logIn(credentials);

      const searchPrompts = await user.functions.searchPrompt("web")
      setPost(() => searchPrompts)
      console.log(searchPrompts)

    } catch (err) {
      console.error("Failed to log in", err);
    }

字符串
我通过更改数据规则修复了错误,如

相关问题