私はFirestoreを使ってポリマーでアプリを開発しています。 データベースからリスナーを切り離すことができないことを除いて、すべてうまくいきます。 誰もが同じコードを試すことができるように準備しました。ポリマーを使ってファイヤーストアのリスナーを外すことができません
<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<link rel="import" href="../../bower_components/paper-fab/paper-fab.html">
<dom-module id="test-app">
<template>
<style>
:host {
display: block;
}
</style>
<h2>connect</h2>
<paper-fab on-tap="connect"></paper-fab>
<h2>change something</h2>
<paper-fab on-tap="changeSomething"></paper-fab>
<h2>disconnect</h2>
<paper-fab on-tap="disconnect"></paper-fab>
</template>
<script>
class TestApp extends Polymer.Element {
static get is() {
return 'test-app';
}
static get properties() {
return {
text: {
type: String
}
};
}
getRef() {
return db.collection('utenti').doc('ZLpc0IDlkEVeb9DEKR2f')
}
connect() {
console.log('connect');
this.getRef().onSnapshot((doc) => {
console.log('text Changed');
console.log(doc.data());
this.text = doc.data().titolo
});
}
changeSomething() {
let newText = this.text + ' randomtext'
this.getRef().update({
titolo: newText
})
}
disconnect() {
console.log('disconnect');
var unsubscribe = this.getRef().onSnapshot(function() {});
unsubscribe();
}
}
window.customElements.define(TestApp.is, TestApp);
</script>
例では、私は3つのボタン、 を持っている上に、私は同じ変更
を作るために、第2キーを押すよりも、最初の1を押すと、正しく文書log
1 connect
2 text Changed
3 [object]
に接続します
log
4 text Changed
5 [object]
私は3番目を押して切断します。
log
6 disconnect
と、この時点で私は断線が本当に起こっていることを確認するために、第2を押して、私はこの時点で
log
7 text Changed
8 [object]
を取得するには、断線が本当に起こったことがないことは明らかです。 切断コードはFirestoreのマニュアルの外にあるので問題にはなりません。
firestoreオフラインの永続性が
を有効にしていませんでしたすべてのソフトウェアの
バージョンが更新されなければならない(亭からfirebase、糸からのポリマーCLI、クロムの最後のバージョン)これはかなり高価な問題であることを得ることができます...誰も助けることができますか?