Introducing Pseudo-Users

Today we’ve rolled out Pseudo-Users, making it easy to use Kii services right away without user authentication. When we created Pseudo-Users we were not only thinking about saving you time but also about the myriad of valid use cases where the users should be on-boarded quickly so they can start experiencing the app without going through the hassles of registration or sign-in.

Possible use cases are:

  • Your user starts playing a game or using an app without a profile but later wants to provide user profile data without loosing progress
  • You want to have an app with distinct users but you never want to require them to authenticate
  • You want to create user profiles without requiring a password (and be able to later add that kind of security if necessary)

The benefit is that you’re now not forced to create a full blown user profile with password protection for these scenarios.

We have designed Pseudo-Users so you can convert them into full users when you think it’s time! Let’s take a look at some code snippets that will show you how to work with these “detached” users (we’re showing async method calls that use callbacks but you also use sync calls if you prefer):

        UserFields userFields = new UserFields();
        userFields.putDisplayName("Player 1");
        userFields.set("highscore", 0);

              new KiiUserRegisterCallback() {
                  public void onRegisterCompleted(
                      KiiUser user,
                      Exception exception)
             = user;
             = exception;

As you can see onRegisterCompleted() returns immediately with a valid Kii user that you can retrieve via KiiUser.getCurrentUser() and you can determine that it’s a pseudo user thanks to the method KiiUser.isPseudoUser(). The UserFields class allows to arbitrarily pass complementary user information (that is if you actually want that, it can be null if you prefer not to pass any parameter). You can of course retrieve a user token to enable a future sign-in with just a line of code:

  // If it's lost the user will not be able to access KiiCloud.
  String accessToken = pseudoUser.getAccessToken();
  // (assuming that your application implements this function)
  // You can later use KiiUser.loginWithToken(accessToken) to sign-in the user

In the event that you want to turn this user into a full blown Kii user you can just do the following (consider the variable pseudoUser has a user created as shown above):

                IdentityData.Builder builder =
                UserFields userFields = new UserFields();
                userFields.putDisplayName("John Smith");
                userFields.set("highscore", 100);
                pseudoUser.putIdentity(, userFields,
                        new KiiUserPutIdentityCallback() {
                            public void onPutIdentityCompleted(
                                    KiiUser user,
                                    Exception exeption)
                       = user;
                       = exeption;

As you can see we easily attached all the necessary identity data for a full blown user (of which password is a must) departing for a pseudo user. We also added user fields but that’s optional.

Well, I hope you like the new Pseudo-User functionality (which is avaliable in our latest SDKs) and that you leverage it to incorporate Kii to your apps in no time. For more info please refer to our Pseud-user documentation (Android, iOS, Javascript, Unity).

If you have questions about this new feature don’t hesitate to chime in at

Happy coding!

- Share -


More posts from

  • Kii IoT platform enables customers to create smart, connected solutions and services
  • Long track record of supporting customers like Docomo, Toshiba, Kyocera and many others
  • Strong ecosystem partners across the globe, consisting of carriers, device/sensor manufacturers, system integrators, network/infrastructure providers, chip vendors and solution developers
  • HQ in Tokyo, US HQ in Silicon Valley & offices in China, Taiwan, Hong Kong and Europe (UK, Spain, Germany)