firebase / firebase/firebase-admin-node
Realtime Database - indefinite hold after calling get()
- 主要言語
- TypeScript
- スター
- 1.7k
- フォーク
- 419
- 平均マージ
- 3日 10時間
- マージ済み PR(30日)
- 16
説明
### Operating System
Node JS 16
### Browser Version
Admin SDK
### Firebase SDK Version
11.7.0 (and also 12.2.0)
### Firebase SDK Product:
Database
### Describe your project's tooling
Admin Node JS SDK
### Describe the problem
Hi guys,
I built a simple script in Typescript that reads from the Database and prints the result. Whenever I do that, the newly created process does not close.
I'm not sure if this is an intended behaviour
I also added the `admin.database().goOffline();` as mentioned in https://github.com/firebase/firebase-js-sdk/issues/6932#issuecomment-1385331994 but didn't work.
### Steps and code to reproduce issue
Run the following js code
```javascript
admin.initializeApp();
_test();
async function _test() {
const ref = await admin
.database()
.ref('YOUR_REFERENCE')
.get();
const start_data = ref.val();
console.log(start_data);
admin.database().goOffline();
console.log('end');
}
```
You'll see that even though the console prints 'end', the program doesn't actually stop.
If you simply run
```javascript
admin.initializeApp();
_test();
async function _test() {
console.log('end');
}
```
the program stops as intended
コントリビューションガイド
調査の方向性
提供された Admin Node.js スクリプトを admin.initializeApp()、database().ref().get()、および goOffline() を使用して再現し、その後 Admin SDK が使用する Realtime Database のパスを調査します。読み取りと最終ログの後に、追加の回避策を必要とせずプロセスが終了すれば完了です。payload にはリポジトリのファイル名やテスト名を記載しません。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- node.js, typescript
- 領域
- databases
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100