Bmob開發指南【android端】


    作為一個開發者,數據的存儲,用戶的登陸,驗證等操作,對程序來說是必不可少的,下面我們將從Bmob的基本信息開始講起:

【Bmob】

  官網:   http://www.bmob.cn/

  幫助文檔:http://www.bmob.cn/site/getdocs

  基本操作:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android

  SDK下載: http://www.bmob.cn/site/sdk

用戶的基本操作

  Ⅰ用戶注冊:

  用戶注冊的表有兩種,一種繼承BmobUser,一種繼承BmobObject,但是大部分作為用戶的注冊使用的一般是BmobUser

   JavaBean代碼:

public class Students extends BmobUser {
    private int age;
    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getAge() {

        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

  實現方法:

private void showRegist() {
        //用戶注冊的方法
        String userName=edt_user.getText().toString();
        String password=edt_password.getText().toString();
        Students stu=new Students();
        stu.setUsername(userName); //Username以及Password為Bmob中的User表,此表字段已經存在,故不可在javaBean中進行創建
        stu.setPassword(password);
        stu.setAge(21);
        stu.setEmail("linfanrong235@163.com"); //測試使用,郵箱驗證的功能
        stu.setAddress("濱州");
        /*
         *用戶注冊的提交
         */
        stu.signUp(MainActivity.this,new SaveListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this,"注冊成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"注冊失敗"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }

后台數據庫:

image

Ⅱ用戶登錄:

private void showSubmit() {
        //用戶登錄的方法
        String userName=edt_user.getText().toString();
        String password=edt_password.getText().toString();
       final BmobUser user=new BmobUser();//創建對象,這個為Bmob創建的類
        //與數據庫中的信息進行比對,成功返回成功,失敗返回失敗的信息
        user.setUsername(userName);
        user.setPassword(password);
        /*
         *用戶登錄
         */
        user.login(MainActivity.this,new SaveListener() {
            @Override
            public void onSuccess() {
                if(user.getEmailVerified())
                {
                    Toast.makeText(MainActivity.this,"登錄成功",Toast.LENGTH_SHORT).show();
                }else{
                    //郵箱未驗證
                }
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"登錄失敗"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Ⅲ更新用戶數據

private void showUpdate() {
        //用戶更新的方法
        Students stu=BmobUser.getCurrentUser(MainActivity.this,Students.class);
        stu.setAddress("臨沂");
        stu.setAge(25);
        stu.update(MainActivity.this,"5c8095e99b",new UpdateListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this,"更新成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"更新失敗"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅳ修改密碼

private void showRepassword() {
    //修改密碼的方法
    final String email="876948462@qq.com";
    BmobUser.resetPassword(MainActivity.this,email,new ResetPasswordListener() {
        @Override
        public void onSuccess() {
            Toast.makeText(MainActivity.this,"修改密碼,請到"+email,Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFailure(int i, String s) {
            Toast.makeText(MainActivity.this,"重置密碼失敗",Toast.LENGTH_SHORT).show();
        }
    });
}

ps:此時系統會默認向你輸入的郵箱發送修改密碼的郵件
-----------------------------------------------------------------------------------------------------------------------------------

【圖片操作】

image

Ⅴ上傳圖片

private void submit() {
        //上傳圖片
        String path="sdcard/Download/shareone.jpg";
        final BmobFile file=new BmobFile(new File(path)); //創建BmobFile對象,轉換為Bmob對象
        file.upload(MainActivity.this,new UploadFileListener() {
            @Override
            public void onSuccess() {
                share share=new share();
                share.setName("ShareOne");
                share.setAge(20);
                share.setIcon(file);  //設置圖片
                share.save(MainActivity.this,new SaveListener() {
                    @Override
                    public void onSuccess() {
                        Toast.makeText(MainActivity.this,"上傳成功",Toast.LENGTH_LONG).show();
                    }

                    @Override
                    public void onFailure(int i, String s) {
                        Toast.makeText(MainActivity.this,"上傳失敗"+s,Toast.LENGTH_LONG).show();

                    }
                });
            }

javaBean類:

public class share extends BmobObject {
    private String name;
    private int age;
    private BmobFile icon;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public BmobFile getIcon() {
        return icon;
    }

    public void setIcon(BmobFile icon) {
        this.icon = icon;
    }
}

后台顯示:

image

Ⅵ下載圖片

private void download() {
        //下載圖片
        BmobQuery<share> query=new BmobQuery<share>();
        query.getObject(MainActivity.this,"f4514dcb9d",new GetListener<share>() {
            @Override
            public void onSuccess(share share) {
                BmobFile icon=share.getIcon();
                icon.loadImage(MainActivity.this,image);
            }

            @Override
            public void onFailure(int i, String s) {

            }
        });
    }

Ⅶ加載圖片縮略圖

private void load() {
        //加載縮略圖
        BmobQuery<share> query_load=new BmobQuery<share>();
        query_load.getObject(MainActivity.this,"f4514dcb9d",new GetListener<share>() {
            @Override
            public void onSuccess(share share) {
                BmobFile icon=share.getIcon();
                icon.loadImageThumbnail(MainActivity.this,load_show,100,100);
            }

            @Override
            public void onFailure(int i, String s) {

            }
        });
    }

-------------------------------------------------------------------------------------------------------

【數據操作】

JavaBean類:

public class FootBaller extends BmobObject {
    private String name;
    private int age;
    private  int score;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

Ⅷ增加數據

private void showCreate() {
        FootBaller fb=new FootBaller();
        fb.setName("monster");
        fb.setAge(20);
        fb.setScore(100);
        fb.save(MainActivity.this,new SaveListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this,"創建成功",Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"創建失敗"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅸ更新數據

private void update() {
        FootBaller fb=new FootBaller();
        fb.setName("MonsterLin");
        fb.setScore(80);
        fb.setAge(26);
        fb.update(MainActivity.this, "ed8f8bdd14", new UpdateListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this, "更新成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this, "創建失敗" + s, Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅹ刪除數據

private void delete() {
        FootBaller fb=new FootBaller();
        fb.setObjectId("7a01c65384"); //刪除對應的ObjectId
        fb.delete(MainActivity.this,new DeleteListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this, "刪除成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this, "刪除失敗", Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅺ查詢數據

private void query() {
        BmobQuery<FootBaller> query=new BmobQuery<FootBaller>();
        query.addWhereEqualTo("name","monster");
        query.findObjects(MainActivity.this,new FindListener<FootBaller>() {
            @Override
            public void onSuccess(List<FootBaller> footBallers) {
                for (FootBaller fb:footBallers)
                {
                    Toast.makeText(MainActivity.this, "查詢數據成功"+fb.getName()+"---"+fb.getScore(), Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onError(int i, String s) {
                Toast.makeText(MainActivity.this, "查詢失敗"+s, Toast.LENGTH_SHORT).show();
            }
        });
    }

【郵箱驗證】

郵箱驗證參考【用戶注冊】板塊,郵箱驗證需要在你對應的Bmob下開啟郵箱驗證的服務

image

 

【圖片和數據上傳】

 

上傳的時候應該先上傳圖片,然后再此基礎上上傳數據信息

eg:

final BmobFile file=new BmobFile(new File(mCurrentPhotoStr));//將圖片路徑轉為BmobFile

			final WalkerUser walkerUser=new WalkerUser();
			
			file.uploadblock(this, new UploadFileListener() {
				
				@Override
				public void onSuccess() {
					//上傳成功
					//Log.e("TAG", "上傳文件成功");
					
					walkerUser.setUsername(userName);
					walkerUser.setPassword(pass);
					walkerUser.setEmail(email);
					
					walkerUser.setMotto(motto);
					walkerUser.setCity(city);
					
					walkerUser.setUserHeight(height);
					walkerUser.setUserWeight(weight);
					walkerUser.setStepLength(stepLength);
					walkerUser.setUserFeatherSport(userFeatherSport);
					walkerUser.setUserPhoto(file);
					walkerUser.signUp(Regist.this, new SaveListener() {
						
						@Override
						public void onSuccess() {
							//數據上傳成功
							//Log.e("--->", "數據上傳成功");
							Toast.makeText(Regist.this, "歡迎加入Walker的大家庭",Toast.LENGTH_SHORT).show();
						}
						
						@Override
						public void onFailure(int i, String s) {
							//數據上傳失敗
							//Log.e("--->", "數據上傳失敗"+s);
							Toast.makeText(Regist.this, "注冊失敗",Toast.LENGTH_SHORT).show();
						}
					});
				}
				
				@Override
				public void onFailure(int i, String error) {
					Log.e("****--->>>","文件上傳失敗"+error);
				}
			});

 

 

------------------------------------------------------------------------------------------------------

【小編有話說】

1.Bmob的初始化建議:

public class BaseActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        
        // 初始化BmobSDK
        Bmob.initialize(this, "Application ID");

然后書寫的類繼承BaseActivity

2.注意BmobUserBmobObject的使用:BmobUser的使用的時候,由於這張表作為系統表,所以已經存在的字段不允許自己重復定義,否則會出現編譯不通過;BmobObject的表用戶可以自定任意定義字段

3.在使用Bmob的使用需要加載SDK以及配置清單文件,具體操作:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android#index_%E5%AE%89%E8%A3%85BmobSDK

4.后續持續跟新…..


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM