사용자 지정 사용자 데이터 - .NET SDK
개요
영역 의 사용자에 대한 임의의 사용자 지정 사용자 데이터 를 저장 수 있습니다. 예를 예시 사용자의 기본 설정 언어 , 생년월일 또는 현지 시간대를 저장 수 있습니다. 이 데이터를 쓰고 읽기 전에 백엔드 에서 사용자 지정 사용자 데이터 를 활성화 해야 합니다. 학습 보려면 사용자 지정 사용자 데이터 활성화를 참조하세요.
중요
사용자 지정 사용자 데이터를 사용하려면 먼저 사용자 지정 사용자 데이터 활성화를 실행해야 합니다.
사용자 지정 사용자 데이터를 생성, 업데이트 또는 삭제하려면 사용자 지정 사용자 데이터 구성에서 다음 정보가 필요합니다.
사용자 지정 사용자 데이터 클러스터
사용자 지정 사용자 데이터 데이터베이스
사용자 지정 사용자 데이터 문서가 저장되는 collection
사용자 지정 사용자 데이터 문서를 사용자에게 매핑하는 데 사용되는 사용자 ID 필드(사용자 ID를 통해)
이 정보는 Realm UI에서 찾을 수 있습니다. 왼쪽 사이드바에서 App Users 을 클릭한 다음 Custom User Data 탭을 선택합니다.
사용자의 사용자 지정 사용자 데이터 읽기
로그인한 사용자의 User
객체 에서 GetCustomData() 메서드를 호출하여 사용자 지정 사용자 데이터 를 조회 합니다.
await user.RefreshCustomDataAsync(); // Tip: define a class that represents the custom data // and use the gerneic overload of GetCustomData<>() var customUserData = user.GetCustomData<CustomUserData>(); Console.WriteLine($"User has pets: {customUserData.HasPets}"); Console.WriteLine($"User's favorite color is {customUserData.FavoriteColor}"); Console.WriteLine($"User's timezone is {customUserData.LocalTimeZone}");
경고
사용자 지정 데이터가 오래되었을 수 있음
App Services 는 기본 데이터가 변경될 때 CustomData
값을 즉시 동적으로 업데이트 하지 않습니다. 대신 App Services 는 사용자가 액세스 토큰 을 새로 고칠 때마다 또는 RefreshCustomDataAsync() 메서드를 명시적으로 호출할 때마다 최신 버전의 사용자 지정 사용자 데이터 를 가져와서 앱 에 최신 사용자 지정 사용자 데이터 가 있는지 확인합니다.
사용자의 사용자 지정 사용자 데이터 문서 만들기
사용자에 대한 사용자 지정 사용자 데이터를 만들려면 사용자 지정 사용자 데이터 컬렉션에서 MongoDB 문서를 만듭니다. 문서의 사용자 ID 필드에는 사용자의 사용자 ID가 포함되어야 합니다. 다음 예제에서는 MongoDB Data Access 를 사용하여 현재 로그인한 사용자의 사용자 ID와 여러 사용자 지정 속성이 포함된 문서를 사용자 지정 사용자 데이터 컬렉션에 삽입합니다.
app = App.Create(myRealmAppId); user = await app.LogInAsync(Credentials.Anonymous()); mongoClient = user.GetMongoClient("mongodb-atlas"); dbTracker = mongoClient.GetDatabase("tracker"); userDataCollection = dbTracker.GetCollection<CustomUserData>("user_data"); var cud = new CustomUserData(user.Id) { FavoriteColor = "pink", LocalTimeZone = "+8", HasPets = true }; var insertResult = await userDataCollection.InsertOneAsync(cud);
사용자 지정 사용자 데이터 객체를 나타내는 C# 클래스(POCO)를 만드는 것이 도움이 될 수 있습니다. SDK는 속성을 쓰고, 읽고, 업데이트할 때 이 클래스를 BSON으로 직렬화/역직렬화합니다. 위의 예제에서는 다음 클래스를 사용하여 속성을 매핑합니다.
public class CustomUserData { public string _id { get; private set; } public string _partition { get; private set; } public string FavoriteColor { get; set; } public string LocalTimeZone { get; set; } public bool HasPets { get; set; } public CustomUserData(string id, string partition = "myPart") { this._id = id; this._partition = partition; } }
사용자의 사용자 지정 데이터 업데이트
사용자 지정 사용자 데이터 업데이트는 작성과 동일한 코드를 사용합니다. 다음 예시 에서는 UpdateOneAsync() 메서드를 사용하여 데이터를 찾아 업데이트한 다음 최신 변경 사항을 사용할 수 있도록 데이터를 새로 고칩니다.
var updateResult = await userDataCollection.UpdateOneAsync( new BsonDocument("_id", user.Id), new BsonDocument("$set", new BsonDocument("HasPets", false))); await user.RefreshCustomDataAsync(); var customUserData = user.GetCustomData<CustomUserData>(); Console.WriteLine($"User has pets: {customUserData.HasPets}"); Console.WriteLine($"User's favorite color is {customUserData.FavoriteColor}"); Console.WriteLine($"User's timezone is {customUserData.LocalTimeZone}");
사용자의 사용자 지정 데이터 삭제
사용자 지정 사용자 데이터 를 삭제할 때는 쓰기 및 업데이트와 동일한 접근 방식을 사용합니다. 다음 예시 에서는 DeleteOneAsync() 메서드를 사용하여 데이터를 찾고 삭제합니다.
var deleteResult = await userDataCollection.DeleteOneAsync( new BsonDocument("_id", user.Id)); // The `DeletedCount` should be 1 Console.WriteLine(deleteResult.DeletedCount); // There should no longer be a custom user document for the user var customData = await userDataCollection.FindOneAsync( new BsonDocument("_id", user.Id)); Console.WriteLine(customData == null);