Parse-SDK-dotNET icon indicating copy to clipboard operation
Parse-SDK-dotNET copied to clipboard

[v2.0.0-develop-1][Xamarin] User SignUp

Open P0wmes opened this issue 4 years ago • 4 comments

i was using parse sdk v2.0 in a Xamarin Forms Shared Project. I am trying to register a new user using Source: https://github.com/parse-community/Parse-SDK-dotNET/#basic-demonstration

Steps to reproduce

Create a Xamarin Forms Shared Project. Install-Package parse -Version 2.0.0-develop-1 Copy Paste Code:

// Instantiate a ParseClient. ParseClient client = new ParseClient(back4app_app_id,back4app_server_url, clientKey);

  var instal = client.Services.GetCurrentInstallation();
  // Create a user, save it, and authenticate with it.
  await client.SignUpAsync(username: "TestABC", password: "Test");

  // Get the authenticated user. This is can also be done with a variable that stores the ParseUser instance before the SignUp overload that accepts a ParseUser is called.
  var curUser=client.GetCurrentUser();

  // Deauthenticate the user.
  await client.LogOutAsync();

  // Authenticate the user.
  ParseUser user = client.LogInAsync(username: "Test", password: "Test").Result;

Actual Outcome

await client.SignUpAsync(username: "TestABC", password: "Test"); throws following exception: System.ArgumentNullException: 'Value cannot be null.Parameter name: element'

Expected Outcome

After SignUpAsync() Function client.GetCurrentUser() should return current User

Environment

Server

  • Parse Server version: 4.2.0
  • Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): Back4APP

Client

  • Parse .NET SDK version: -Version 2.0.0-develop-1
  • Xamarin.Forms Project is .NET 2.1

P0wmes avatar May 22 '21 10:05 P0wmes

I'm facing the exact same error with the function CallCloudCodeFunctionAsync Xamarin Forms shared project too.

thibautvdu avatar May 28 '21 09:05 thibautvdu

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jul 21 '21 00:07 stale[bot]

I recently encountered this same issue. The problem and the solution is referenced in other issues here, such as #344. Namely, you have to follow the procedure in the README for the Unity client: https://github.com/parse-community/Parse-SDK-dotNET#use-in-unity-client

You have to adapt it a bit for Xamarin. Here is what I've used to get it working with Xamarin Forms 5:

var client = new ParseClient(new ServerConnectionData
            {
                ApplicationID = "...",
                Key = "...",
                ServerURI = "..."
            },
            new LateInitializedMutableServiceHub(),
            new MetadataMutator
            {
                EnvironmentData = new EnvironmentData { OSVersion = Environment.OSVersion.ToString(), Platform = Device.RuntimePlatform, TimeZone = TimeZoneInfo.Local.StandardName },
                HostManifestData = new HostManifestData {
                    Version = this.GetType().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion,
                    Name = this.GetType().Assembly.GetName().Name,
                    ShortVersion = this.GetType().Assembly.GetName().Version.ToString(),
                    Identifier = AppDomain.CurrentDomain.FriendlyName
                }
            });

sschaub avatar Aug 05 '21 19:08 sschaub

ServerURI need add / to last, such as http://localhost:1337/api/

hhgz9527 avatar Sep 08 '21 06:09 hhgz9527