Realtime Database - reading data gives wrong value if transaction is pending
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript, node.js
- 領域
- database
調査の方向性
admin.database().ref(...).transaction(...) を使用する Node.js の再現から始め、続けて parent ref.once('value', ...) を実行し、トランザクションありの場合となしの場合で返される配列を比較します。意図された結果を判断するために、Realtime Database のトランザクションと読み取りの動作を確認します。保留中のトランザクションのケースが修正されるか、意図したとおりに明示的に解決されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
[REQUIRED] Step 2: Describe your environment
- Operating System version: macOS 14.5 (23F79)
- Firebase SDK version: 12.2.0
- Firebase Product: database
- Node.js version: v20.13.0
- NPM version: v10.5.2
[REQUIRED] Step 3: Describe the problem
If a transaction is pending for a node, it doesn't show up when reading data for the parent node with .once("value", ...). I'm not sure if this is a bug or intended behavior.
Steps to reproduce:
For these examples, our database looks like this:
{
"example_list": [
"a",
"b",
"c"
]
}
This code works as expected:
let ref = admin.database().ref("example_list");
ref.once('value', (snap) => {
console.log(snap.val())
});
Logs: [ 'a', 'b', 'c' ]
This code does NOT work as expected:
admin.database().ref("example_list/1").transaction((currentData) => {
return currentData;
});
let ref = admin.database().ref("example_list");
ref.once('value', (snap) => {
console.log(snap.val())
});
Logs: [ 'a', <1 empty item>, 'c' ]
Adding a transaction first, which seems like a no-op, actually causes the read to return a different result.
- 主要言語
- TypeScript
- スター
- 1.7k
- フォーク
- 419
- 平均マージ
- 4日 20時間
- マージ済み PR(30日)
- 16
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
firebase/firebase-admin-node のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
firebase/firebase-admin-node#3234 ·
-
[email protected] stable dependency tree fails npm audit via Storage uuid and Firestore google-gax オープン
firebase/firebase-admin-node#3221 · コメント 3 件 · 担当者 1 名 ·
-
api: messaging
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
firebase/firebase-admin-node#3215 ·
-
api: messaging
難易度 5/5 1週間以上 初心者へのやさしさ 28/100
firebase/firebase-admin-node#3214 ·
-
api: firestore type: feature request
firebase/firebase-admin-node#3183 · コメント 1 件 · 担当者 1 名 ·
firebase/firebase-admin-node の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
motiondivision/motion#3849 ·
-
Add: S Play Event HD オープンcheck:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
i-am-bee/beeai-framework#1697 · リアクション 1 件 ·
-
Support bun dedupe オープンenhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
antfu/node-modules-inspector#214 ·