私は、クラウド機能を使用して、 'onWrite'イベントのレコードに短い一意のURLを生成して保存します。これは正常ですが、EmberFireを使用してEmberアプリケーションからレコードを保存すると、コールバックの引数としてモデルが返されますが、このモデルのURLは定義されていません。これをクライアントに返す方法はありますか?または、生成されたURLを取得するためにレコードを照会する必要がありますか?EmberFire:レコードの保存時にクラウド関数によって生成されたプロパティを取得する
これは私のクラウド機能コードがどのように見えるかです:ここでは
exports.generateUrl = functions.database.ref('/tournaments/{tid}')
.onWrite(event => {
if (event.data.previous.exists()) {
return;
}
if (!event.data.exists()) {
return;
}
const url = shortid.generate();
return event.data.ref.update({ url });
});
は、フォームの送信を介してデータを保存し、私のコンポーネントです。私はいくつかの検証を処理するためにember-changesetというアドオンを使用していますが、これは問題に関連してはいけません。
export default Ember.Component.extend({
submit(e) {
e.preventDefault();
let snapshot = this.changeset.snapshot();
return this.changeset
.cast(Object.keys(this.get('schema')))
.validate()
.then(() => {
if (this.changeset.get('isValid')) {
return this.changeset
.save()
.then((result) => {
// Here, result.get('url') is undefined.
})
}
})
}
});