我有此代码通过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:不允许客户端对安装集合执行查找操作。
我做错了什么?
答案 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仪表板中提供的客户端密钥。