Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在“一个”应用程序中使用两个解析帐户_Android_Parse Platform - Fatal编程技术网

Android 如何在“一个”应用程序中使用两个解析帐户

Android 如何在“一个”应用程序中使用两个解析帐户,android,parse-platform,Android,Parse Platform,我们正在创建一个Android启动器,其中包含几个“预装”应用程序。这些应用程序实际上是同一代码的一部分,但对用户来说,从外部来看,这些应用程序是不同的逻辑单元 我们使用Parse Core,希望将数据拆分为两个不同的逻辑“应用程序”。能做到吗 我们想用不同的应用程序和客户端密钥多次调用“Parse.initialize”,但我们应该如何继续向不同的应用程序报告 谢谢。几个月前,我遇到了完全相同的问题。至少,我没有开发发射器。因此,我在下面发布我的问题解决方案 注意:您不能使用Parse SDK

我们正在创建一个Android启动器,其中包含几个“预装”应用程序。这些应用程序实际上是同一代码的一部分,但对用户来说,从外部来看,这些应用程序是不同的逻辑单元

我们使用Parse Core,希望将数据拆分为两个不同的逻辑“应用程序”。能做到吗

我们想用不同的应用程序和客户端密钥多次调用“Parse.initialize”,但我们应该如何继续向不同的应用程序报告


谢谢。

几个月前,我遇到了完全相同的问题。至少,我没有开发发射器。因此,我在下面发布我的问题解决方案

注意:您不能使用Parse SDK执行此操作

因此,解决方案是让你的应用程序公开他们自己的API。这有几个优点,例如,您的解析应用程序可以由不同的帐户拥有,同时不会违反解析使用条款

TL;博士 创建两个不同的应用程序,并使用云代码公开API。使用REST客户端来回处理数据

全解 第一步是创建两个解析应用程序,您认为这两个应用程序适合启动器软件的个人需求。您可以为这两个应用程序设置。从本质上说,这一步的结果是,您将有两个不同的应用程序使用您自己的API

现在,去掉您当前可能正在使用的解析SDK。选择一个合适的REST客户机,在我的例子中是这样的。将其配置为可以为单个调用使用不同的基本URL。以下是改装的具体示例

返回带有基本URL的REST适配器的函数

在本例中,FirstAppApi本质上是一个改装接口。同样,您也可以为第二个解析应用程序创建适配器。现在,要进行数据交易,只需决定应该使用哪个应用程序。请参见下面的几个示例

// Get an author from the first Parse app
Author author = getFirstAppApi().getAuthorByName("Shakespeare");

// Get books of the author from the second Parse app
List<Book> books = getSecondAppApi().getBooksByAuthor(author);

在这个实施过程中需要注意几件事。API是公开的,尽管应用程序名是公开的,因此基本url只有您知道。因此,API在完成时应该得到很好的保护。您应该与解析人员再次确认它没有违反他们的使用条款

我认为您可以尝试使用重新打包Parse SDK的jar文件。 另一种方法是让它是开源的,并对其进行重构以更改包名

完成后,您可以使用不同的类处理两个解析帐户:

com.parse.Parse.initialized();
com.parse2.Parse.initialized();
如果使用Parse的脱机存储,则只有第二个选项可用。但您还必须更改第二个解析实例com.parse2.Parse的数据库名称。您需要更改com/parse2/OfflineSQLiteOpenHelper.java

/** package */ class OfflineSQLiteOpenHelper extends ParseSQLiteOpenHelper {

  // ...

  /**
   * The SQLite Database name.
   */
  private static final String DATABASE_NAME = "ParseOfflineStore2"; // <=====
  private static final int DATABASE_VERSION = 4;

虽然他们确实公开了他们的SDK,但我认为这个解决方案也行不通。你的链接是关于iOS的——我不知道iOS是否有类似的链接。在java中,您可以重新打包jar,它与原始jar没有任何共同之处。您可以在代码中同时使用这两种方法。我深入查看了解析代码,只看到了一个共享点—脱机存储。要修复它,只需重命名数据库名.interest。反正我自己也会试试。你不需要服务器。您可以从应用程序中使用REST API。@RaphaelRoyer Rivard您指的是什么服务器?您说过可以为这两个应用程序生成express服务器。但在你说你可以在你的应用程序中使用REST客户端之后。我的错
/** package */ class OfflineSQLiteOpenHelper extends ParseSQLiteOpenHelper {

  // ...

  /**
   * The SQLite Database name.
   */
  private static final String DATABASE_NAME = "ParseOfflineStore2"; // <=====
  private static final int DATABASE_VERSION = 4;