2
私はredux saga APIを持っています。ここでfirebaseに接続してデータのレコードを読み込みます。firebaseでのyieldを呼び出す方法read API
var roomRef = firebase.database().ref('/Users/' + userid + '/rooms')
var rooms = []
roomRef.once('value', function (snap) {
var roomkeys = snap.val()
for (var roomkey in roomkeys) {
firebase.database().ref('/Rooms/' + roomkey).once('value', function (item) {
rooms.push(item.val())
})
}
console.log(rooms)
--> put({type: 'LOAD_ROOMS', payload: { rooms: rooms}})
})
私のputはコールバック関数の内部にあるのでyieldキーワードは使用できません。新しい値「部屋」を使用してレデューサーの状態を変更するイベントをディスパッチするには
チャームのように働いた!ありがとう! – Ricky
この場合、firebaseの 'once'メソッドはすでにPromiseを返すので、Promiseを自分でインスタンス化する必要はありません。 'function getRooms(userId){firebase.database()。ref( 'users /' + userId + '/ rooms')を一回( 'value')返します。 val())} 'を呼び出すと、const rooms = yield call(getRooms、userId)' – VonD