انتقل إلى المحتوى الرئيسي

updateUser

يحدّث المستخدم المصادَق عليه. 🔐 تتطلب هذه الطريقة التفويض.

الوصف​

يحدّث بيانات المستخدم المصادَق عليه ويُعيد true عند النجاح.

لا تتغير إلا الحقول التي تمرّرها: تُطابَق حقول النموذج حسب marker، ويُدمج state، وتحتفظ الحقول التي تحذفها بقيمها. الاستثناء هو notificationData: فهو يستبدل الكائن المخزّن، بما في ذلك رموز FCM في phonePush، لذا احذفه ما لم ترسل كل الحقول.

إذا غيّرت حقل النموذج الذي يعمل كاسم تسجيل الدخول (isLogin في مجموعة السمات)، يتغيّر identifier الخاص بالمستخدم أيضًا. ترفض واجهة API اسم تسجيل دخول يملكه مستخدم آخر بالفعل (400 A user with this login has existed)، ولا يمكنك تغيير اسم تسجيل الدخول لحساب OAuth.

.updateUser(

,

);

مخطط المعلمات​

المخطط

body(مطلوب): IUserBody
نص الطلب.
مثال:

{
"formIdentifier": "reg",
"authData": [
{
"marker": "email_reg",
"value": "your-email@oneentry.cloud"
},
{
"marker": "password_reg",
"value": "12345"
}
],
"formData": [
{
"marker": "last_name",
"type": "string",
"value": "Username"
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": [
"fcm_token_1234567890abcdefg"
],
"phoneSMS": "+12025550147"
},
"state": {}
}

body.formIdentifier(مطلوب): string
علامة النموذج.
مثال: "form_12345"

body.langCode: string
رمز اللغة. الافتراضي: langCode المُمرَّر إلى defineOneEntry ("en_US" إذا لم يُمرَّر).

body.authData: IAuthData[]
يُستخدم فقط لتغيير كلمة المرور. مرّر إدخالًا واحدًا يكون marker فيه هو حقل كلمة المرور في نموذج المصادقة وvalue فيه كلمة المرور الجديدة. أغفله في التحديثات الأخرى.
مثال:

[
{
"marker": "password",
"value": "12345"
}
]

authData.marker(مطلوب): string
علامة حقل نموذج المصادقة.
مثال: "login"

authData.value(مطلوب): string
قيمة حقل المصادقة.
مثال: "john@example.com"

body.formData: FormDataType | FormDataType[]
كائن حقل نموذج واحد أو مصفوفة منها. قيم الحقول: FormDataType — قيمة بحسب نوع الحقل (سلسلة نصية، كائن تاريخ، كائن نص، قائمة، واصف ملف)، وليست سلسلة نصية فقط. يُمرَّر الملف على شكل الواصف الذي تُعيده FileUploading.upload: هذه الطرق لا ترفع File/Blob بنفسها.
مثال:

[
{
"marker": "first_name",
"type": "string",
"value": "John"
},
{
"marker": "last_name",
"type": "string",
"value": "Doe"
}
]

body.notificationData: object
جهات اتصال الإشعارات: البريد الإلكتروني وأرقام الهواتف.
مثال:

{
"email": "john@example.com",
"phonePush": [
"fcm_token_1234567890abcdefg"
],
"phoneSMS": "+12025550147"
}

body.state: object
بيانات مخصّصة بصيغة مفتاح-قيمة مخزّنة مع المستخدم. تُدمج مفتاحًا علويًا واحدًا في كل مرة: المفتاح المعيَّن إلى null يُحذف، والمفاتيح الأخرى تستبدل قيمها المخزّنة (تُستبدل الكائنات المتداخلة بالكامل)، والمفاتيح المحذوفة من الطلب تبقى كما هي.
مثال:

{
"orderCount": 1
}

langCode: string
رمز اللغة. الافتراضي: langCode المُمرَّر إلى defineOneEntry ("en_US" إذا لم يُمرَّر).
مثال: "en_US"

أمثلة​

مثال بسيط​


// 1. Sign in
await AuthProvider.(
,
{
{
,
,
},
{
,
}
]
}
);

// 2. Update the user
const body = {
,
{
,
,
}
]
};

const response = await Users.updateUser(body);

تغيير كلمة المرور​

يُستخدم authData فقط لتغيير كلمة المرور. مرّر إدخالًا واحدًا: حقل كلمة المرور في النموذج المرتبط بمزود المصادقة، باستخدام علامة ذلك الحقل (هنا password_reg)، وكلمة المرور الجديدة قيمةً له. احذف authData في أي تحديث آخر.

const response = await Users.updateUser({
formIdentifier: "reg",
authData: [{ marker: "password_reg", value: "newPassword123" }],
});

أمثلة على الجسم لأنواع السمات المختلفة​

الأنواع البسيطة: "string" و"integer" و"float"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "last_name",
"type": "string",
"value": "Smith"
}
]
};

const response = await Users.updateUser(body);

"date", "dateTime", "time"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "birthday",
"type": "date",
"value": {
"fullDate": "2024-05-07T21:02:00.000Z",
"formattedValue": "05-07-2024 21:02",
"formatString": "MM-DD-YYYY HH:mm"
}
}
]
};

const response = await Users.updateUser(body);

"text"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "about",
"type": "text",
"value": [
{
"htmlValue": "<p>About me</p>",
"params": {
"isImageCompressed": true,
"editorMode": "html"
}
}
]
}
]
};

const response = await Users.updateUser(body);

"textWithHeader"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "about",
"type": "textWithHeader",
"value": [
{
"header": "Heading",
"htmlValue": "<p>About me</p>",
"params": {
"isImageCompressed": true,
"editorMode": "html"
}
}
]
}
]
};

const response = await Users.updateUser(body);

"image" و"groupOfImages"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "avatar",
"type": "image",
"value": [
{
"filename": "files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"downloadLink": "http://my-site.com/cloud-static/files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"size": 392585,
"previewLink": "",
"params": {
"isImageCompressed": true
}
}
]
}
]
};

const response = await Users.updateUser(body);

"file"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "picture",
"type": "file",
"value": [
{
"filename": "files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"downloadLink": "http://my-site.com/cloud-static/files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"size": 392585
}
]
}
]
};

const response = await Users.updateUser(body);

"radioButton"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "selector",
"type": "radioButton",
"value": "1"
}
]
};

const response = await Users.updateUser(body);

"list"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "selector",
"type": "list",
"value": [
"1"
]
}
]
};

const response = await Users.updateUser(body);

"entity" (قائمة متداخلة)​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "entity-selector",
"type": "entity",
"value": [
1,
2
]
}
]
};

const response = await Users.updateUser(body);

"timeInterval"​

const body = {
"formIdentifier": "reg",
"formData": [
{
"marker": "interval",
"type": "timeInterval",
"value": [
[
"2025-02-11T16:00:00.000Z",
"2025-02-13T16:00:00.000Z"
]
]
}
]
};

const response = await Users.updateUser(body);

مثال على الاستجابة​

true

أمثلة الاستخدام​

شرح خطوة بخطوة:

  • تحديث المستخدم: تغيير سمة مستخدم، مثل رقم الهاتف، في الحساب المصادَق عليه.

جربها مباشرة​

شغّل هذه الطريقة تفاعليًا في بيئة JS SDK التجريبية. اربط Project URL وApp Token عند الزيارة الأولى، ثم افتح:

  • تحديث المستخدم: تغيير سمة مستخدم، مثل رقم الهاتف، في الحساب المصادَق عليه.