如何从parse.com数据库获取发件人的电子邮件地址

时间:2015-11-16 04:13:27

标签: android parse-platform

我有这个Android应用程序 VoteActivity.class 创建自定义问卷并将其发送到 voteAnswer.class 以检查单选按钮并回答调查问卷。我正在尝试 voteAnswer.class 将答案发送到发件人的电子邮件地址。答案应该发送给首先创建调查问卷的人,可以是任何电子邮件。换句话说,用户将在他/她的电子邮件地址中获得答案。我尝试从parse.com数据库中获取电子邮件,但它无法正常工作。我需要解析专业会员吗?或者它是如何工作的?或者我做错了吗? 几个星期以来,我一直在努力解决这个小问题,如果我在stackoverflow中收到专家的提示以清除我的困惑,我将非常感激。

我的VoteAnswer.class

  query.findInBackground( new FindCallback<ParseObject>() {
               @Override
               public void done(List<ParseObject> objects, ParseException e) {
                   if (e==null) {


                     for (int i = 0; i <objects.size(); i ++)
                      {

                          String question = objects.get(0).getString("questionare");
                          final String mO = objects.get(0).getString("optionOne");
                          final String mT = objects.get(0).getString("optionTwo");
                          final String mH = objects.get(0).getString("optionThree");

                          questionare = (TextView) findViewById(R.id.mainQ);
                          mOne = (TextView) findViewById(R.id.optionO);
                          mTwo = (TextView) findViewById(R.id.optionTW);
                          mThree = (TextView) findViewById(R.id.optionTH);

                          radioVoteGroup = (RadioGroup) findViewById(R.id.radioGroup1);
                          optionONE=(RadioButton) findViewById(R.id.optionone);
                          optionTWO=(RadioButton) findViewById(R.id.optiontwo);
                          optionTHREE=(RadioButton) findViewById(R.id.optionthree);



                          //questionare.setText(objects.get(i).getString("questionare"));
                         // mOne.setText(objects.get(i).getString("optionOne"));
                         // mTwo.setText(objects.get(i).getString("optionTwo"));
                         // mThree.setText(objects.get(i).getString("optionThree"));
                          questionare.setText(question);
                          optionONE.setText(mO);
                          optionTWO.setText(mT);
                          optionTHREE.setText(mH);



                          //mOne.setText(mO);
                         // mTwo.setText(mT);
                         // mThree.setText(mH);


                          Log.d("questionare", "Retrieved " + objects.size()+ " questionare");

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


                                  returnVoteAnswer();




                              }
                          });
                      }



                       //question = objects.toString("questionare");
                       //mO = objects.toString("optionOne");
                      // mT = objects.toString("optionTwo");
                      // mH = objects.toString("optionThree");
                       //addData();

                   }
                   else
                   {
                       e.printStackTrace();

                   }
               }
           });

    }

    private String returnVoteAnswer ()
    {
        switch (radioVoteGroup.getCheckedRadioButtonId()) {
            case R.id.optionone:
                return optionONE.getText()  .toString();
            case R.id.optiontwo:
                return optionTWO.getText().toString();
            case R.id.optionthree:
                return optionTHREE.getText().toString();
            default:
                return "";

        }

    }

提前致谢

1 个答案:

答案 0 :(得分:0)

User类只能由用户自己或主密钥进行评估。在您的情况下,您可以在执行查询之前使用Parse.Cloud.useMasterKey()方法编写Cloud Code函数来获取用户的电子邮件。

Cloud Code Guide:https://www.parse.com/docs/cloudcode/guide

Parse在Android指南中缺少其Cloud Code指令,因此您可以使用以下代码来调用Cloud Code功能。

HashMap<String, String> params = new HashMap<String, String>();
params.put("objectId",objectId); //Include any param your Cloud Code needs
ParseCloud.callFunctionInBackground("yourCloudFuction", params, new FunctionCallback<Float>() {
      public void done(Float ratings, ParseException e) {
           if (e == null) {
                    // ratings is 4.5
           }
      }
});