私のサインアップロジックを実装したafterSaveに問題があります。 私がしなければならないことは、ユーザーが登録をしたときにウォレットクラスにトランザクションを追加して、クレジットを与えることです。だから、私は、クラウドコード機能を持っている:解析クラウドコードafterSaveがエラー107を返すPOSTできない
// Add welcome bonus on signup
Parse.Cloud.afterSave(Parse.User, (request) => {
// commit transaction only on signup completed with phone number
if (request.object.get('username')) {
const wallet = new Parse.Object('Wallet')
wallet.set('value', 100)
wallet.set('action', '+')
wallet.set('description', 'welcome bonus')
wallet.set('user', {
__type: 'Pointer',
className: '_User',
objectId: request.object.id
})
wallet.save(null,{useMasterKey: true}).then(
(result) => console.log('objectId',result.id),
(error) => console.log('code:',error.code,'message:',error.message)
)
}
})
Parse.Cloud.useMasterKeyので、()私はまだ方法を保存するにuseMasterKeyオプションを使用する方法の解析ドキュメントをfollwed、しかし、私廃止されました
info: afterSave triggered for _User for user undefined:
Input: {...} className=_User, triggerType=afterSave, user=undefined
code: 107 message: Received an error with invalid JSON from Parse: Cannot POST /classes/Wallet
そしてTHI:このエラーを得ましたsはウォレットテーブルです:
|値:数値|アクション:文字列|説明:文字列|ユーザー:ポインタ< _ユーザー> |
そして、私は、ローカルホスト上で働いているデフォルトの列createdAt、updatedAt、OBJECTIDとACL
。
何が起こっているかについてのアイデアはありますか?
wallet.save()の中にパラメータを入れずに使うだけですか?それでも問題が解決しない場合は、コードの先頭に{useMasterKey:true}を追加してみてください。 – Lyon
値が整数型で、アクション列が文字列型であることを確認してください。おそらくあなたは既にいくつかのオブジェクトを保存していて、それらに異なるタイプを渡しているかもしれません。 –
ウォレットテーブルを表示できますか? –