הסבר על קודי שגיאה
בדף הזה מפורטים קודי שגיאות שאתם עשויים להיתקל בהם, ומוצעות דרכים לפתור כל אחת מהן.
DEADLINE_EXCEEDED
הגורמים הבאים יכולים להגדיל את מספר השגיאות של DEADLINE_EXCEEDED:
- הגדלה בזמן האחזור גרמה לכך שפעולה נמשכה יותר מהזמן המקסימלי (60 שניות כברירת מחדל).
DEADLINE_EXCEEDED A deadline was exceeded on the server.
כדי לפתור את הבעיה, אפשר לעיין במדריך לפתרון בעיות שקשורות לזמן האחזור.
הופסקה
המצבים הבאים עלולים להגדיל את מספר השגיאות מסוג ABORTED:
- מסמך שמקבל יותר מדי עדכונים בשנייה.
- התנגשות מעסקאות חופפות.
- גידולים בתנועת הגולשים שחורגים מכלל 500-50-5 או שנתקלים בנקודות חמות.
ABORTED Too much contention on these datastore entities. Please try again.
או
ABORTED Aborted due to cross-transaction contention. This occurs when multiple transactions attempt to access the same data, requiring Firestore to abort at least one in order to enforce serializability.
כדי לפתור את הבעיה:
- במקרים של עלייה מהירה בתעבורה, מערכת Firestore מנסה לבצע התאמה אוטומטית לעומס כדי לעמוד בביקוש המוגבר. כשהמערכת מבצעת התאמה לעומס, זמן האחזור מתחיל להתקצר.
- הנקודות החמות מגבילות את היכולת של Firestore להתרחב. כדי לזהות נקודות חמות, כדאי לעיין במאמר בנושא תכנון לצורך הרחבה.
- בודקים את התחרות על נתונים בעסקאות ואת השימוש שלכם בעסקאות.
- צריך להקטין את קצב הכתיבה למסמכים בודדים.
RESOURCE_EXHAUSTED
המצבים הבאים עלולים לגרום לשגיאות RESOURCE_EXHAUSTED:
חרגתם מהמכסה של רמת השירות בחינם והחיוב לא מופעל בפרויקט שלכם.
הגידולים בתנועת הגולשים לא עומדים בשיטות המומלצות
RESOURCE_EXHAUSTED Some resource has been exhausted, perhaps a per-user quota.
או
RESOURCE_EXHAUSTED This database has exceeded their daily quota or the ramp up limit for writes, please retry with exponential backoff. To learn more about limits, see 'Usage and limits' section of the support documentation.
כדי לפתור את הבעיה:
אם הגעתם למכסה של הרמה החינמית, צריך לחכות עד שהמכסה היומית של הרמה החינמית תתאפס או להפעיל את החיוב בפרויקט.
במקרים של עלייה מהירה בתעבורה, מערכת Firestore מנסה לבצע התאמה אוטומטית לעומס כדי לעמוד בביקוש המוגבר. כשהמערכת מבצעת התאמה לעומס, יכול להיות שמספר השגיאות יקטן.
הנקודות החמות מגבילות את היכולת של Firestore להתרחב. כדאי לעיין במאמר בנושא תכנון בהתאם לגידול כדי לזהות נקודות חמות.
לשאילתות של מאזינים בזמן אמת, חשוב לוודא שהשאילתות לא רחבות מדי. כדאי להשתמש במסננים כדי לצמצם את מספר העדכונים.
INVALID_ARGUMENT
השגיאות של INVALID_ARGUMENT יכולות להיגרם מהמצבים הבאים:
- ניסיון לבצע פעולת commit של מסמך עם ערך של שדה מאונדקס שגדול מ-1,500 בייט. המגבלה הזו חלה על קידוד UTF-8 של ערך השדה.
- ניסיון לבצע קומיט של מסמך עם ערכי שדות לא מפונדקסים שגדולים מ-1,048,487 בייט (1MiB – 89 בייט). המגבלה הזו חלה על סכום ערכי השדות במסמך. לדוגמה, ארבעה שדות של 256KiB כל אחד חורגים מהמגבלה.
1,500 בייט (מאונדקס) ו-1,048,487 בייט (לא מאונדקס) הם הגבולות של ערכי השדות. אי אפשר לחרוג מהמגבלות האלה, והן לא מכסות שאפשר לשנות.
INVALID_ARGUMENT: The value of property field-name is longer than 1500 bytes
או
INVALID_ARGUMENT: The value of property field_name is longer than 1048487 bytes
כדי לפתור את הבעיה:
- לגבי ערכים של שדות עם אינדקס, צריך לפצל את השדה לכמה שדות. אם אפשר, כדאי ליצור שדה שלא נוסף לאינדקס ולהעביר אליו נתונים שלא צריך להוסיף לאינדקס.
- אם ערכי השדות לא נכללים באינדקס, צריך לפצל את השדה לכמה שדות או להטמיע דחיסה של ערך השדה.