Am I using OnUpdate() right? Because the code below doesn't print "Updating Messages" when I change the data store's value.

local MessageData = game:GetService("DataStoreService"):GetDataStore("test36Messages")
local PlayerKey = "user_"..script.Parent.Parent.Parent.UserId

local MessagesUpdated = MessageData:OnUpdate(PlayerKey, 
	function()
		print("Updating Messages")
		local data = game.ServerStorage.SAVEDDATA:FindFirstChild(script.Parent.Parent.Parent.Name)
		for i,v in pairs (data.Messages) do
			v:Destroy()
		end
		for number, message in pairs (MessageData:GetAsync(PlayerKey)) do
			local value = game.ServerStorage.messagefolder:Clone()
			value.Name = message["Name"]
			value.Text.Value = message["Text"]
			value.GiveReward.Value = message["GiveReward"]
			value.GiveReward.RewardType.Value = message["RewardType"]
			value.GiveReward.Reward.Value = message["Reward"]["Gold"]
			if message["Reward"]["Units"] ~= {} then
				for i, v in pairs (message["Reward"]["Units"]) do
					local unit = Instance.new("StringValue")
					unit.Name = v
					unit.Value = v
					unit.Parent = value.GiveReward.Reward
				end
			end
			value.Parent = data.Messages
		end
	end
)  
MessagesUpdated:disconnect()