Open evohi8 opened 10 months ago
objectIdは自動生成されるもので、上書きはできません。なので以下は不可です。
object["objectId"] = nickname.text
完全なユニーク制約は難しいですが、ニックネーム(nickname)の一意性を確認する場合には、QueryのequalToを使って、検索を実行してください。結果が1件であればすでに利用済み、なければ利用可能と判断できます。
query.where(field: "nickname", equalTo: nickname.text)
ただし、同時に同じニックネームに関するリクエストがあった場合には登録されてしまうので、その点は注意が必要です。
NCMBでユニークが保証されるのは、ユーザ管理のuserNameになるので、userName = ニックネームであればユニークが保証されます(同じuserNameでは登録できません)。その上で、ユーザーが自由に決められるニックネーム(表示名)がある方が安全かと思います。
ありがとうございます
データストアからAllUserクラスの中のobjectIdを検索してidがあれば上書き、なければ新規登録したいのですが、 どう記述すればよいかわかりません。下記の記述だとデバックで保存に失敗しましたと表示されます。 どなかたか、ご教示いただけますでしょうか。 初心者なもので、わからずすみません・・・