質問編集履歴

1

追記

2020/03/30 11:54

投稿

dialbird
dialbird

スコア379

test CHANGED
File without changes
test CHANGED
@@ -45,3 +45,47 @@
45
45
  その場合、どのようにしたらうまく行くのでしょうか?
46
46
 
47
47
  よろしくお願いいたします
48
+
49
+
50
+
51
+ 追記:
52
+
53
+
54
+
55
+ 以下のように書き換えてみたところ、原因はタイムアウトエラーによるものであることが判明しました
56
+
57
+
58
+
59
+ ```js
60
+
61
+ firestore.collection("users").get().then(snap => {
62
+
63
+ let promises = [];
64
+
65
+ snap.forEach(doc => {
66
+
67
+ const user = doc.data();
68
+
69
+ promises.push(firestore.collection("rooms").doc(user.roomId).update({timezone: user.timezone}));
70
+
71
+ })
72
+
73
+ return Promise.all(promises)
74
+
75
+ }).catch(err => {
76
+
77
+ console.log(`err: ${err}`);
78
+
79
+ // err: Error: Retry total timeout exceeded before any response was received
80
+
81
+ })
82
+
83
+ ```
84
+
85
+
86
+
87
+ おそらくは実行元がクラウドファンクションであることも一因であるかもとは思うのですが、タイムアウトエラーを起こさずに、700件近くのドキュメントを同時に更新するにはどのような手法があるのでしょうか?
88
+
89
+
90
+
91
+ そういったクエリを管理者的に、権限を無視してFirestoreに送りつけられる方法がありましたら教えて欲しいです!