我使用Firebase和MySQL作为后端。我可以使用laravel项目将数据插入Firebase。但删除和更新操作仅对MySQL有效。
我想让这些功能对Firebase也有效。我正在使用<Slider x:Name="uiScaleSlider" Value="1" Minimum="0.5" Maximum="1.5" />
与Firebase同步数据。它完全适用于插入。我需要一个解决方案。
答案 0 :(得分:1)
没有什么特别需要做的。它为您处理它。 let's have a look at that trait
public static function bootSyncsWithFirebase()
{
static::created(function ($model) {
$model->saveToFirebase('set');
});
static::updated(function ($model) {
$model->saveToFirebase('update');
});
static::deleted(function ($model) {
$model->saveToFirebase('delete');
});
}
行。所以它将自己与create/update/delete
事件联系在一起。其余功能做了什么?
protected function saveToFirebase($mode)
{
if (is_null($this->firebaseClient)) {
$this->firebaseClient = new FirebaseLib(config('services.firebase.database_url'), config('services.firebase.secret'));
}
$path = $this->getTable() . '/' . $this->getKey();
if ($mode === 'set' && $fresh = $this->fresh()) {
$this->firebaseClient->set($path, $fresh->toArray());
} elseif ($mode === 'update' && $fresh = $this->fresh()) {
$this->firebaseClient->update($path, $fresh->toArray());
} elseif ($mode === 'delete') {
$this->firebaseClient->delete($path);
}
}
就是这样。当通过Eloquent / FQB进行删除时,它已在Firebase中删除。
您的问题可能是您没有使用Eloquent执行删除/ udpates,因此没有收到任何事件。
答案 1 :(得分:0)
您必须获得第一条记录,否则您将无法获得EventCal模型实例。
App \ EventCal :: where('id',20) - &gt; first() - &gt; delete();