Microsoft Azure PlayFab logo
    • Multiplayer
    • LiveOps
    • Data & Analytics
    • Add-ons
    • For Any Role

      • Engineer
      • Designer
      • Executive
      • Marketer
    • For Any Stage

      • Build
      • Improve
      • Grow
    • For Any Size

      • Solo
      • Indie
      • AAA
  • Runs on PlayFab
  • Pricing
    • Blog
    • Forums
    • Contact us
  • Sign up
  • Sign in
  • Ask a question
  • Spaces
    • PlayStream
    • Feature Requests
    • Add-on Marketplace
    • Bugs
    • API and SDK Questions
    • General Discussion
    • LiveOps
    • Topics
    • Questions
    • Articles
    • Ideas
    • Users
    • Badges
  • Home /
  • API and SDK Questions /
avatar image
Question by Kim Strasser · Jun 25 at 05:41 PM · CloudScript

CloudScript: How can I find out if a certain PlayFabId is stored in ReadOnlyData and remove it?

In my game, a player can block other players and the PlayFabIds of the blocked players are stored in his ReadOnlyData. The player can also unblock blocked players if he wants. But I don't know how to remove a certain PlayFabId from ReadOnlyData because it is one big string.

For example, how can I remove the PlayFabId 57440D2996790D06 from this ReadOnlyData key/value pair in CloudScript?

Key:

BlockedPlayers

Value(blocked PlayFabIds):

57440D2996790D06,88440D2996790D06,99440D2996790D06

I get the key/value pair like this in CloudScript:

var friendid = args.FriendId; // it is: 57440D2996790D06
var key = "BlockedPlayers";
var blockedplayers = server.GetUserReadOnlyData({PlayFabId: currentPlayerId, Keys: "BlockedPlayers"});
if (blockedplayers.Error == null)
{
  if ((blockedplayers.Data.hasOwnProperty(key)) && (blockedplayers.Data[key].Value != "") && (blockedplayers.Data[key].Value != null))
  {   
    var jsondata = blockedplayers.Data[key].Value;

Comment

People who like this

0 Show 0
10 |1200 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
Best Answer

Answer by Made Wang · Jun 27 at 09:15 AM

You need to split this string, delete the specified PlayFabId, and then generate a new string with the remaining contents to update ReadOnlyData. Refer to the code below.

handlers.handleBlockedPlayers=function(args,context){
    var unBlockedPlayFabId = args.unBlockedPlayFabId;
    var key="BlockedPlayers";
    var blockedplayers=server.GetUserReadOnlyData(
        {
            PlayFabId: currentPlayerId,
            Keys: key
        });
    if(blockedplayers.Error==null)
    {
        if ((blockedplayers.Data.hasOwnProperty(key)) && (blockedplayers.Data[key].Value != "") && (blockedplayers.Data[key].Value != null))
        {
            var players=blockedplayers.Data[key].Value.split(",");
            if(players.includes(unBlockedPlayFabId))
            {
                var index=players.indexOf(unBlockedPlayFabId);
                players.splice(index,1);
                var newPlayers=players.toString();
                server.UpdateUserReadOnlyData({
                    PlayFabId: currentPlayerId,
                    Data: {
                        [key]: newPlayers
                    }
                });
            }
        }
    }
}
Comment

People who like this

0 Show 0 · Share
10 |1200 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Navigation

Spaces
  • General Discussion
  • API and SDK Questions
  • Feature Requests
  • PlayStream
  • Bugs
  • Add-on Marketplace
  • LiveOps
  • Follow this Question

    Answers Answers and Comments

    13 People are following this question.

    avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

    Related Questions

    Disable GitHub Integration 2 Answers

    Saving data in Unity on Pause/Quit/Lose Focus 1 Answer

    ailed to import package with error: Couldn't decompress package 1 Answer

    Was the "CloudScript execution API requests issued" limit raised to 15? 1 Answer

    CloudScript execution? 1 Answer

    PlayFab

    • Multiplayer
    • LiveOps
    • Data & Analytics
    • Runs on PlayFab
    • Pricing

    Solutions

    • For Any Role

      • Engineer
      • Designer
      • Executive
      • Marketer
    • For Any Stage

      • Build
      • Improve
      • Grow
    • For Any Size

      • Solo
      • Indie
      • AAA

    Engineers

    • Documentation
    • Quickstarts
    • API Reference
    • SDKs
    • Usage Limits

    Resources

    • Forums
    • Contact us
    • Blog
    • Service Health
    • Terms of Service
    • Attribution

    Follow us

    • Facebook
    • Twitter
    • LinkedIn
    • YouTube
    • Sitemap
    • Contact Microsoft
    • Privacy & cookies
    • Terms of use
    • Trademarks
    • Safety & eco
    • About our ads
    • © Microsoft 2020
    • Anonymous
    • Sign in
    • Create
    • Ask a question
    • Create an article
    • Post an idea
    • Spaces
    • PlayStream
    • Feature Requests
    • Add-on Marketplace
    • Bugs
    • API and SDK Questions
    • General Discussion
    • LiveOps
    • Explore
    • Topics
    • Questions
    • Articles
    • Ideas
    • Users
    • Badges