DataStore
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Xem Kho dữ liệu.
Tóm Tắt
Phương Pháp
Lấy phiên bản chìa khóa được định nghĩa.
Lấy phiên bản chính của chìa khóa đã hiện hành vào một thời điểm nhất định.
- ListKeysAsync(prefix : string,pageSize : number,cursor : string,excludeDeleted : boolean):DataStoreKeyPages
Trả về một đối tượng DataStoreKeyPages để liệt kê qua các chìa khóa của một kho lưu trữ dữ cửa hàng.
- ListVersionsAsync(key : string,sortDirection : Enum.SortDirection,minDate : number,maxDate : number,pageSize : number):DataStoreVersionPages
Liệt kê tất cả các phiên bản của một chìa khóa.
Xóa vĩnh viễn phiên bản được chỉ định của một chìa khóa.
Trả giá trị của một chìa khóa trong một cửa hàng dữ liệu được định và một ví ví dụ / trường hợpDataStoreKeyInfo .
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
Tăng giá trị của một chìa khóa bằng số tiền cung cấp (cả hai phải là số lẻ).
Loại bỏ chìa khóa được chỉ định trong khi vẫn giữ một phiên bản có thể truy cập.
Đặt giá trị của kho dữ liệu cho chìa khóa đã cho.
Cập nhật giá trị của một chìa khóa với một giá trị mới từ chức năng gọi lại được chỉ định.
Thuộc Tính
Phương Pháp
GetVersionAsync
Chức năng này lấy lại phiên bản chìa khóa được chỉ định cũng như một ví ví dụ / trường hợpDataStoreKeyInfo .Một nhận dạng phiên bản có thể được tìm thấy thông qua DataStore:ListVersionsAsync() hoặc thay thế là nhận dạng được trả về bởi GlobalDataStore:SetAsync() .
Tham Số
Tên chìa khóa mà thông tin phiên bản được yêu cầu.Nếu DataStoreOptions.AllScopes được đặt thành true khi truy cập vào kho dữ liệu thông qua DataStoreService:GetDataStore() , tên chìa khóa này phải được gán với phạm vi ban đầu như trong "scope/key".
Số phiên bản của chìa khóa mà thông tin phiên bản được yêu cầu.
Lợi Nhuận
Giá trị của chìa khóa tại phiên bản được chỉ định và một DataStoreKeyInfo bao gồm số phiên bản, ngày và thời gian phiên bản được tạo và các chức năng để lấy lại UserIds và metadata.
GetVersionAtTimeAsync
Chức năng này trả lại phiên bản chìa khóa hiện tại tại một thời điểm nhất định cũng như một ví ví dụ / trường hợpDataStoreKeyInfo .
Tham Số
Tên chìa khóa mà thông tin phiên bản được yêu cầu.Nếu DataStoreOptions.AllScopes được đặt thành true khi truy cập vào kho dữ liệu thông qua DataStoreService:GetDataStore() , tên chìa khóa này phải được gán với phạm vi ban đầu như trong "scope/key".
Thời gian Unix trong mili giây mà phiên bản yêu cầu hiện tại.Phải lớn hơn không.Không được lâu hơn mười phút trong tương lai.
Lợi Nhuận
Giá trị của chìa khóa đã hiện hành tại thời điểm được chỉ định và một DataStoreKeyInfo bao gồm số phiên bản, ngày và thời gian phiên bản được tạo và các chức năng để lấy lại UserIds.nil nếu không có phiên bản hiện có tại thời điểm yêu cầu.
Mẫu mã
The following code sample retrieves data store key versions using timestamps.
local DataStoreService = game:GetService("DataStoreService")
local dataStore = DataStoreService:GetDataStore("DataStore")
local key = "key-123"
function setData(data)
local success, result = pcall(function()
dataStore:SetAsync(key, data)
end)
if not success then
warn(result)
end
end
function getVersionAtTime(timestamp)
local success, result, keyInfo = pcall(function()
return dataStore:GetVersionAtTimeAsync(key, timestamp.UnixTimestampMillis)
end)
if success then
if result == nil then
print("No version found at time")
else
print(result, keyInfo.Version)
end
else
warn(result)
end
end
-- Previously ran at 2024/12/02 6:00 UTC
setData("version 1")
-- Previously ran at 2024/12/02 9:00 UTC
setData("version 2")
-- Prints "No version found at time"
local time1 = DateTime.fromUniversalTime(2024, 12, 02, 05, 00)
getVersionAtTime(time1)
-- Prints "version 1 <version>"
local time2 = DateTime.fromUniversalTime(2024, 12, 02, 07, 00)
getVersionAtTime(time2)
-- Prints "version 2 <version>"
local time3 = DateTime.fromUniversalTime(2024, 12, 02, 10, 00)
getVersionAtTime(time3)
ListKeysAsync
Chức năng này trả về một đối tượng DataStoreKeyPages để liệt kê qua các chìa khóa của một kho lưu trữ dữ cửa hàng.Nó chấp nhận một tham số tùy chọn prefix để chỉ tìm kiếm các chìa khóa có tên bắt đầu với tiền tố cung cấp.
Nếu DataStoreOptions.AllScopes được đặt thành true khi truy cập vào kho dữ liệu thông qua DataStoreService:GetDataStore(), các chìa khóa sẽ được trả về với tất cả các phạm vi như là tiền tố.
Tham Số
(Tùy chọn) Prefix để sử dụng để tìm kiếm chìa khóa.
(Tùy chọn) Số lượng vật phẩm được trả về trong mỗi trang.Nếu không có giá trị nào được cung cấp, động cơ gửi một giá trị mặc định là 0 cho dịch vụ lưu trữ dữ liệu web, sau đó mặc định là 50 vật phẩm mỗi trang.
(Tùy chọn) Cursor để tiếp tục lặp lại.
(Opcional) Bỏ các chìa khóa bị xóa khỏi việc trả về.
Khi bật ListKeys sẽ kiểm tra tối đa 512 chìa khóa.Nếu tất cả các phím được kiểm tra đã bị xóa thì nó sẽ trả về một danh sách trống với một con trỏ để tiếp tục lặp lại.
Lợi Nhuận
Một ví dụ DataStoreKeyPages mà liệt kê các chìa khóa như DataStoreKey các ví dụ.
ListVersionsAsync
Chức năng này liệt kê các phiên bản của chìa khóa được chỉ định theo thứ tự tăng dần hoặc giảm dần được xác định bởi một tham số Enum.SortDirection.Nó có thể lọc các phiên bản trả lại theo thời gian tối thiểu và tối đa.
Tham Số
Tên chìa khóa cho các phiên bản để liệt kê.Nếu DataStoreOptions.AllScopes được đặt thành true khi truy cập vào kho dữ liệu thông qua DataStoreService:GetDataStore() , tên chìa khóa này phải được gán với phạm vi ban đầu như trong "scope/key".
(Tùy chọn) Enum xác định thứ tự sắp xếp tăng dần hoặc giảm dần.
(Tùy chọn) Thời gian Unix trong mili giây sau đó các phiên bản nên được liệt kê
(Tùy chọn) Thời gian Unix trong mili giây cho đến khi các phiên bản nên được liệt kê.
(Tùy chọn) Số lượng vật phẩm được trả về trong mỗi trang.Nếu không có giá trị nào được cung cấp, động cơ gửi một giá trị mặc định là 0 cho dịch vụ lưu trữ dữ liệu web, sau đó mặc định là 1024 vật phẩm mỗi trang.
Lợi Nhuận
Một ví dụ DataStoreVersionPages mà liệt kê tất cả các phiên bản của chìa khóa như DataStoreObjectVersionInfo các ví dụ.
Mẫu mã
The following code sample retrieves all versions after a specified starting time, sorted in ascending order.
local DataStoreService = game:GetService("DataStoreService")
local experienceStore = DataStoreService:GetDataStore("PlayerExperience")
local time = DateTime.fromUniversalTime(2020, 10, 09, 01, 42)
local listSuccess, pages = pcall(function()
return experienceStore:ListVersionsAsync("User_1234", nil, time.UnixTimestampMillis)
end)
if listSuccess then
local items = pages:GetCurrentPage()
for key, info in pairs(items) do
print("Key:", key, "; Version:", info.Version, "; Created:", info.CreatedTime, "; Deleted:", info.IsDeleted)
end
end
RemoveVersionAsync
Chức năng này xóa vĩnh viễn phiên bản được chỉ định của một chìa khóa. Các xác định phiên bản có thể được tìm thấy thông qua DataStore:ListVersionsAsync() .
Không giống như GlobalDataStore:RemoveAsync(), chức năng này không tạo một phiên bản "mộ đá" mới và giá trị bị xóa không thể được lấy lại sau.
Tham Số
Tên chìa khóa mà một phiên bản sẽ bị xóa.Nếu DataStoreOptions.AllScopes được đặt thành true khi truy cập vào kho dữ liệu thông qua DataStoreService:GetDataStore() , tên chìa khóa này phải được gán với phạm vi ban đầu như trong "scope/key".
Số phiên bản của chìa khóa để xóa.