문서 메뉴

문서 홈애플리케이션 개발Atlas Device SDK

사용자 지정 사용자 데이터 - .NET SDK

이 페이지의 내용

  • 개요
  • 사용자의 사용자 지정 사용자 데이터 읽기
  • 사용자의 사용자 지정 사용자 데이터 문서 만들기
  • 사용자의 사용자 지정 데이터 업데이트
  • 사용자의 사용자 지정 데이터 삭제

Realm의 사용자에 대한 임의의 사용자 지정 사용자 데이터를 저장할 수 있습니다. 예를 들어 사용자의 기본 설정 언어, 생년월일 또는 현지 시간대를 저장할 수 있습니다. 이 데이터를 쓰고 읽기 전에 백엔드에서 사용자 지정 사용자 데이터를 활성화해야 합니다. 자세히 알아보려면 사용자 지정 사용자 데이터 활성화를 참조하세요.

중요

사용자 지정 사용자 데이터를 사용하려면 먼저 사용자 지정 사용자 데이터 활성화를 실행해야 합니다.

사용자 지정 사용자 데이터를 생성, 업데이트 또는 삭제하려면 사용자 지정 사용자 데이터 구성에서 다음 정보가 필요합니다.

  • 사용자 지정 사용자 데이터 클러스터

  • 사용자 지정 사용자 데이터 데이터베이스

  • 사용자 지정 사용자 데이터 문서가 저장되는 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);
← 사용자 인증 - .NET SDK