Azure 移动服务:无法将任何记录插入 table?

Azure Mobile Service: Cannot insert any records to table?

我创建了一个 azure 移动服务并正确设置了所有数据库 table(测试了它们)。但是,当我尝试通过我的 android 应用程序向我的 SQL table 插入一条记录时,该记录不会被添加。 (是的,我的 SQL table 也已准备好使用移动服务。也更改了架构)

我也没有收到错误。

这是我的代码:

@Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.login_screen);

        final String mobileServiceUrl =
                "https://MY_AZURE_MOBILE_URL.net/tables/UserTable";
        final String mobileServiceAppId =
                "MY_MOBILESERVICE_APPID";


        try {
            // Create the Mobile Service Client instance, using the provided
            // Mobile Service URL and key
            mClient = new MobileServiceClient(
                    mobileServiceUrl,
                    mobileServiceAppId,
                    this);

            // Get the Mobile Service Table instance to use
            mToDoTable = mClient.getTable(UserTable.class);


        } catch (MalformedURLException e) {

        }

Button regiBtn = (Button) findViewById(R.id.signupDivertBtn);
        regiBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            try
            {
                UserTable user = new UserTable();
                user.setPassword("111");
                user.setFname("TESTName");
                user.setId("234232");
                user.setEmail("sear@tr.com");
                mToDoTable.insert(user);
            }

为什么 mToDoTable.Insert() 语句不起作用?插入记录到azuretable的方法不对吗?

编辑:

这是我的 UserTable 实体 class:

public class UserTable {

    @com.google.gson.annotations.SerializedName("id")
    private String id;

    @com.google.gson.annotations.SerializedName("Email")
    private String email;

    @com.google.gson.annotations.SerializedName("Password")
    private String password;

    @com.google.gson.annotations.SerializedName("UserFName")
    private String fname;


    public UserTable()
    {

    }

    public UserTable(String id, String email, String password, String fname) {
        this.setId(id);
        this.setEmail(email);
        this.setPassword(password);
        this.setFname(fname);
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getFname() {
        return fname;
    }

    public void setFname(String fname) {
        this.fname = fname;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

您的 mobileServiceUrl 值有误。它应该像这样指向您的移动服务的根目录“https://YOURSERVICENAME.azure-mobile.net/”。

我会让服务为您设置 ID (GUID)。如果您不喜欢,只需添加一个字段来存储您自己的 ID。

在了解您的 Android 应用无法运行的原因之前。我建议您先确保您可以通过 API 帮助插入记录。您应该能够通过本地调试或在您发布的 Azure 网站上对此进行测试。一旦它正常工作,您就可以通过 API 帮助插入记录。然后试试CSharpRocks提到的。

请注意,当您在本地调试时,您应该像 SQL 快速服务器一样设置一个本地数据库,并更改您的 web.config MS_TableConnectionString 以匹配。而你的客户端App中的手机客户端URL(比如Android)应该是debug时在浏览器中弹出的本地URL