我的parseuser类有一个名为“profile_photo”的自定义列,它是照片的parsefile。我已将照片文件附加到parseuser实例,并且可以在我的应用程序用户仪表板上看到,该用户的profile_photo列已填充该文件,其他用户已按预期为该列设置了“未定义”。现在在我的代码中,我需要检查用户是否附加了个人资料照片。我该怎么做。我尝试过使用isdataavailable()检查,但它始终返回true,即使仪表板上profile_photo的值是“未定义”的。我还尝试了以下方法:

ParseFile photo = user.get("profile_photo");
photo.getDataInBackground(new GetDataCallback() {
   @Override public void done(byte[] data, ParseException pfe) {
      if(pfe == null) {
         // byte array data always returns something! data.length > 0, always, even for undefined...
       }
   }
});

但是从注释中可以看到,即使附加到所讨论的parseuser的parsefile是“未定义”的,数据数组也永远不会为空。
如果你能告诉我或者告诉我一种方法来清楚地识别一个解析文件是否是空的,我将非常感激。
最好的问候

最佳答案

您使用了错误的方法获取文件。如果对get("column_name")的列使用ParseFile,则此方法将返回文件ID。您应该使用

ParseFile file = object.getParseFile("column_name");

如果文件未定义,则返回null。

10-04 19:36