Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

사용자 지정 사용자 데이터 - Java SDK

이 페이지의 내용

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

사용자 지정 사용자 데이터 로 알려진 애플리케이션 사용자에 대한 임의 데이터를 Java 애플리케이션 내에서 직접 읽을 수 있습니다. 예를 예시 사용자의 기본 설정 언어 , 생년월일 또는 현지 시간대를 저장 수 있습니다. 사용자 지정 사용자 데이터 에 학습 보려면 사용자 지정 사용자 데이터 활성화를 참조하세요.

중요

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

현재 로그인한 사용자의 User 객체 를 통해 해당 사용자의 사용자 지정 사용자 데이터 를 읽을 수 있습니다. User 객체 를 통해 사용자 지정 사용자 데이터 를 편집할 수 없습니다. 사용자 지정 사용자 데이터 업데이트 를 참조하세요. 데이터에 액세스 하려면 User.customData() 로그인한 사용자의 User 객체 에 대한 메서드

Credentials anonymousCredentials = Credentials.anonymous();
app.loginAsync(anonymousCredentials, it -> {
if (it.isSuccess()) {
Log.v("EXAMPLE", "Successfully authenticated anonymously.");
User user = app.currentUser();
Document customUserData = user.getCustomData();
Log.v("EXAMPLE", "Fetched custom user data: " + customUserData);
} else {
Log.e("EXAMPLE", it.getError().toString());
}
});
val anonymousCredentials: Credentials = Credentials.anonymous()
app.loginAsync(anonymousCredentials) {
if (it.isSuccess) {
Log.v("EXAMPLE", "Successfully authenticated anonymously.")
val user = app.currentUser()
val customUserData : Document? = user?.customData
Log.v("EXAMPLE", "Fetched custom user data: $customUserData")
} else {
Log.e("EXAMPLE", it.error.toString())
}
}

경고

사용자 지정 데이터가 오래되었을 수 있음

Atlas App Services는 기본 데이터가 변경될 때 User.customData() 값을 즉시 동적으로 업데이트하지 않습니다. 대신 Atlas App Services는 사용자가 액세스 토큰 을 새로 고칠 때마다 최신 버전의 사용자 지정 사용자 데이터를 가져옵니다. 이 작업은 Atlas App Services 백엔드에 연결하는 대부분의 SDK 작업 중에 발생합니다. Realm은 30 분마다 액세스 토큰을 새로 고침하므로 사용자 지정 사용자 데이터는 30 분 동안 부실 상태가 될 수 없습니다.

최신 버전의 사용자 지정 사용자 데이터 가 필요한 경우 User.refreshCustomData() 메서드를 사용하여 사용자의 사용자 지정 데이터의 최신 버전을 요청 합니다.

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

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

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

  • 사용자 지정 사용자 데이터 문서가 저장되는 사용자 지정 사용자 데이터 컬렉션

  • 사용자 지정 사용자 데이터 문서를 사용자에게 매핑하는 데 사용되는 사용자 ID 필드 (사용자 ID를 통해)

App Services UI App Users 페이지의 Custom User Data 탭 아래에서 이 정보를 찾을 수 있습니다.

사용자에 대한 사용자 지정 사용자 데이터를 만들려면 사용자 지정 사용자 데이터 컬렉션에서 MongoDB 문서를 만듭니다. 문서의 사용자 ID 필드에는 사용자의 사용자 ID가 포함되어야 합니다. 다음 예제에서는 MongoDB Data Access 를 사용하여 현재 로그인한 사용자의 사용자 ID와 favoriteColor 값이 포함된 문서를 사용자 지정 사용자 데이터 컬렉션에 삽입합니다.

Credentials credentials = Credentials.anonymous();
app.loginAsync(credentials, it -> {
if (it.isSuccess()) {
User user = app.currentUser();
MongoClient mongoClient =
user.getMongoClient("mongodb-atlas"); // service for MongoDB Atlas cluster containing custom user data
MongoDatabase mongoDatabase =
mongoClient.getDatabase("custom-user-data-database");
MongoCollection<Document> mongoCollection =
mongoDatabase.getCollection("custom-user-data-collection");
mongoCollection.insertOne(
new Document("user-id-field", user.getId()).append("favoriteColor", "pink").append("_partition", "partition"))
.getAsync(result -> {
if (result.isSuccess()) {
Log.v("EXAMPLE", "Inserted custom user data document. _id of inserted document: "
+ result.get().getInsertedId());
} else {
Log.e("EXAMPLE", "Unable to insert custom user data. Error: " + result.getError());
}
});
} else {
Log.e("EXAMPLE", "Failed to log in anonymously:" + it.getError().toString());
}
});
val anonymousCredentials: Credentials = Credentials.anonymous()
app.loginAsync(anonymousCredentials) {
if (it.isSuccess) {
val user = app.currentUser()
val mongoClient : MongoClient =
user?.getMongoClient("mongodb-atlas")!! // service for MongoDB Atlas cluster containing custom user data
val mongoDatabase : MongoDatabase =
mongoClient.getDatabase("custom-user-data-database")!!
val mongoCollection : MongoCollection<Document> =
mongoDatabase.getCollection("custom-user-data-collection")!!
mongoCollection.insertOne(Document("user-id-field", user.id).append("favoriteColor", "pink").append("_partition", "partition"))
.getAsync { result ->
if (result.isSuccess) {
Log.v("EXAMPLE", "Inserted custom user data document. _id of inserted document: ${result.get().insertedId}")
} else {
Log.e("EXAMPLE", "Unable to insert custom user data. Error: ${result.error}")
}
}
} else {
Log.e("EXAMPLE", "Failed to log in anonymously: ${it.error}")
}
}

사용자 지정 사용자 데이터 문서를 만들 때 임의의 필드와 값을 원하는 만큼 추가할 수 있습니다. 사용자 ID 필드는 문서를 User 객체에서 사용자 지정 사용자 데이터로 사용할 수 있도록 하기 위한 유일한 요구 사항입니다.

MongoDB Data Access, Realm Sync, MongoDB Compass 또는 MongoDB Atlas Data Explorer를 사용하여 사용자 지정 사용자 데이터를 업데이트할 수 있습니다.

MongoDB Data Access를 사용하여 사용자의 사용자 지정 사용자 데이터를 업데이트하려면 사용자 ID 필드에 사용자의 사용자 ID가 포함된 MongoDB 문서를 편집합니다.

사용자 ID를 확인하려면 User.id 속성에 액세스하거나 App Services UI App Users 페이지의 Users 탭 아래에서 사용자를 찾습니다.

다음 예제에서는 MongoDB Data Access 를 사용하여 사용자 지정 사용자 데이터 컬렉션에서 현재 로그인한 사용자의 사용자 ID가 포함된 문서의 favoriteColor 필드를 업데이트합니다.

Credentials credentials = Credentials.anonymous();
app.loginAsync(credentials, it -> {
if (it.isSuccess()) {
User user = app.currentUser();
MongoClient mongoClient =
user.getMongoClient("mongodb-atlas"); // service for MongoDB Atlas cluster containing custom user data
MongoDatabase mongoDatabase =
mongoClient.getDatabase("custom-user-data-database");
MongoCollection<Document> mongoCollection =
mongoDatabase.getCollection("custom-user-data-collection");
mongoCollection.updateOne(
new Document("user-id-field", user.getId()), new Document("favoriteColor", "cerulean"))
.getAsync(result -> {
if (result.isSuccess()) {
if (result.get().getModifiedCount() == 1L) {
Log.v("EXAMPLE", "Updated custom user data document.");
} else {
Log.v("EXAMPLE", "Could not find custom user data document to update.");
}
} else {
Log.e("EXAMPLE", "Unable to insert custom user data. Error: " + result.getError());
}
});
} else {
Log.e("EXAMPLE", "Failed to log in anonymously:" + it.getError().toString());
}
});
val anonymousCredentials: Credentials = Credentials.anonymous()
app.loginAsync(anonymousCredentials) {
if (it.isSuccess) {
val user = app.currentUser()
val mongoClient : MongoClient =
user?.getMongoClient("mongodb-atlas")!! // service for MongoDB Atlas cluster containing custom user data
val mongoDatabase : MongoDatabase =
mongoClient.getDatabase("custom-user-data-database")!!
val mongoCollection : MongoCollection<Document> =
mongoDatabase.getCollection("custom-user-data-collection")!!
mongoCollection.updateOne(Document("user-id-field", user.id), Document("favoriteColor", "cerulean"))
.getAsync { result ->
if (result.isSuccess) {
if (result.get().modifiedCount == 1L) {
Log.v("EXAMPLE", "Updated custom user data document.")
} else {
Log.v("EXAMPLE", "Could not find custom user data document to update.")
}
} else {
Log.e("EXAMPLE", "Unable to update custom user data. Error: ${result.error}")
}
}
} else {
Log.e("EXAMPLE", "Failed to log in anonymously: ${it.error}")
}
}

돌아가기

사용자 인증