ANDROID:在Android-parse中,电子邮件客户端接收者电子邮件ID为空

7
我正在使用Android Parse服务器应用程序。以下是电子邮件列的Parse数据库截图。 电子邮件列位于隐藏密码列之后。

parse database screenshot

我的问题是


当我从电子邮件客户端检索电子邮件地址时,即使电子邮件列中有电子邮件,电子邮件仍为空。
注意:在应用程序的另一个地方(另一个表格)中,我以同样的方式提取电子邮件ID以发送电子邮件,但是那里的邮件显示正常...只有在这里出现问题。
如果有人知道,请帮忙?
这是Parse数据库中的电子邮件列。
 try{
                        JSONObject jsonObject = parseObjectToJson(object);
                        Log.d("Object", jsonObject.toString());
                        Log.d("Email", "+" + object.get("email"));
                        personNumber = jsonObject.getString("telephone");
                        personEmail = jsonObject.getString("email");
                    }catch (JSONException je){

                    }catch (ParseException pe){

                    }

这是电子邮件按钮。
  emailPerson = (Button)findViewById(R.id.individualEmail);
            emailPerson.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(Intent.ACTION_SEND);
                    i.setData(Uri.parse("mailto:"));
                    i.setType("plain/text");
                    i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {personEmail});
                    startActivity(i);
                }
            });
            if(personEmail==null || personEmail.equals("")  || personEmail.equals(" ")){
                emailPerson.setClickable(false);
                emailPerson.setEnabled(false);
                emailPerson.setVisibility(View.GONE);
            }
            else{
                emailPerson.setEnabled(true);
                emailPerson.setClickable(true);
                emailPerson.setVisibility(View.VISIBLE);
            }

在这里它运行良好,但这是同一数据库中的不同表。>在这个表中没有隐藏密码字段。
try{
                            corporateEmail = jsonObject.getString("email");
                            if(corporateEmail == null || corporateEmail.equals("")){
                                emailCorporate.setVisibility(View.GONE);
                                emailCorporate.setEnabled(false);
                                emailCorporate.setClickable(false);
                            }

emailCorporate = (Button) findViewById(R.id.corporateEmail);
        emailCorporate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(Intent.ACTION_SEND);
                i.setData(Uri.parse("mailto:"));
                i.setType("plain/text");
                i.putExtra(Intent.EXTRA_EMAIL, new String[] {corporateEmail});
                startActivity(i);
            }
        });

 private JSONObject parseObjectToJson(ParseObject parseObject) throws ParseException, JSONException, com.parse.ParseException {
        JSONObject jsonObject = new JSONObject();
        parseObject.fetchIfNeeded();
        Set<String> keys = parseObject.keySet();
        for (String key : keys) {
            Object objectValue = parseObject.get(key);
            if (objectValue instanceof ParseObject) {
                jsonObject.put(key, parseObjectToJson(parseObject.getParseObject(key)));
            } else if (objectValue instanceof ParseRelation) {
            } else {
                jsonObject.put(key, objectValue.toString());
            }
        }
        return jsonObject;
    }

如果对已登录用户有效,那对你来说也应该没问题,@Faizal Mohamed。有什么需要帮忙的吗? - Jitesh Mohite
将对象解析为 JSON 格式(parseObjectToJson(object)),你能看到这些对象并且了解它们在这种情况下所包含的内容,然后与其他表进行比较。 - Jitesh Mohite
我不知道问题出在哪里,但我想知道你的方法是什么。为什么要转换为JSONObject而不使用ParseObject子类? - nasch
之前使用parseObject时,无法加载数据。因此我想将其存储在JSONObject中。当不同的用户登录时,是否可以从parse User类中检索用户的电子邮件字段?@nasch - Faizal Munna
是的,除非您更改了默认ACL,否则阅读应该是可行的。“我们从不允许用户编写彼此的数据,但默认情况下他们可以读取它。”http://blog.parse.com/learn/engineering/parse-security-iii-are-you-on-the-list/ - nasch
显示剩余14条评论
1个回答

2

如果 jsonObject 不为空,则检查从中获取数据的解析数据库是否具有“电子邮件”标签。


屏幕截图在问题中,请检查。隐藏密码栏后面的电子邮件标记是否导致无法检索电子邮件ID?@Oniyide Ibukun Olaoluwa - Faizal Munna
尝试一下 Log.d("Object", jsonObject.toString()); 检查结果是否包含电子邮件,如果是的话,检查结果以找到它的确切位置。你可以发送响应,这样我们就可以一起进行调试。 - Oniyide Blessing Olaoluwa
嗨,没有结果是空的 @Oniyide Ibukun Olaoluwa - Faizal Munna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接