解析:查询ParseInstallation时未经授权

时间:2015-07-06 07:38:43

标签: java parse-platform

我有此代码通过Parse中的uniqueId自定义字段查询安装:

public static void init(Context context) {
    Parse.initialize(context, Constants.PARSE_APP_ID, Constants.PARSE_APP_KEY);

    String wifiMacAddress = getWifiMacAddress(context);

    ParseQuery<ParseInstallation> query = ParseInstallation.getQuery();
    query.whereEqualTo("uniqueId", wifiMacAddress);
    query.findInBackground(new FindCallback<ParseInstallation>() {
        @Override
        public void done(List<ParseInstallation> parseInstallations, ParseException e) {
            if (parseInstallations == null)
                throw new RuntimeException(e);
            Log.d("prova", "Size: " + parseInstallations.size());
        }
    });
}

但我得到ParseRequestException

  

了java.lang.RuntimeException:   com.parse.ParseRequest $ ParseRequestException:未经授权的

我正在使用Parse主密钥。如果我使用客户端密钥,我会收到此错误:

  

了java.lang.RuntimeException:   com.parse.ParseRequest $ ParseRequestException:不允许客户端对安装集合执行查找操作。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

也许你打算这样做,但方法Parse.initialize(Context, String, String)

  

只有在打算使用其他方法时才需要此方法   applicationId或clientKey ,而不是com.parse.APPLICATION_ID定义的   或者AndroidManifest.xml中的com.parse.CLIENT_KEY。

因此,默认情况是在AndroidManifest.xml中定义两者,如

<manifest ...>

 ...

   <application ...>
     <meta-data
       android:name="com.parse.APPLICATION_ID"
       android:value="@string/parse_app_id" />
     <meta-data
       android:name="com.parse.CLIENT_KEY"
       android:value="@string/parse_client_key" />

       ...

   </application>
 </manifest>

并使用initialize(Context context)

BTW,initialize期望

  

Parse仪表板中提供的客户端密钥。