Parse 2.1.6 で実行されている移行済みの Parse アプリケーションがあります。認証付きのシンプルな MongoDB 3.0.8 (RocksDB エンジン) セットアップを使用します。使用しているユーザーには次の権限があります。
[{ "role" : "dbAdmin", "db" : "parse" },
{ "role" : "readWrite", "db" : "parse"}]
Parse サーバーが起動するか、リクエストを処理しようとすると、次のようになります。
[MongoError: not authorized for query on parse._SCHEMA]
次のことを考えると、これは非常に奇妙に思えます。
- ユーザーは、このデータベースの任意のコレクションをクエリする権限を明確に持っています。
- その同じユーザーは実際に、mongo コンソールまたは robomongo を介してこのコレクションをクエリできます。
- Parse.com は、このデータベースを同じユーザーで使用すると正常に動作します。
- 実際に、同じ Parse アプリケーションをローカルで実行し、そのユーザーでこの同じリモート MongoDB を指し示すことができ、そのようなエラーなしで動作します。
これはちょっとクレイジーです。ここでかなり基本的なものが欠けているように感じます。何かご意見は?
更新: リクエストに応じて、サーバーの起動方法を示すサンプル コード:
var api = new ParseServer({ appId: 'the app id',
masterKey: 'the master key',
clientKey: 'client key',
cloud: '/absolute_path/cloud/main.js',
serverURL: 'https://myserver.com/parse',
push:
{ ios:
{ production: false,
bundleId: 'thebundleid.com',
pfx: <Buffer ... > } },
oauth: { facebook: { appIds: 'appId' } },
databaseURI: 'mongodb://user@pass:127.0.0.1:27017'
});
app.use('/parse', api);