Ошибка при запуске моделирования — Произошла неизвестная ошибка

# #google-cloud-firestore #firebase-security

Вопрос:

 {  "__name__":"/databases/(default)/documents/users/mfBBtfSX91YS9mXrkmEDTksA0712/sold/mfBBtfSX91YS9mXrkmEDTksA0712-hanSW0s5MxOOENWnc5T1cLinekj2/invoice/WhdEi2W83GtjDjowi6MV",  "id":"WhdEi2W83GtjDjowi6MV",  "data":{  "id":"db1a01a0-4da5-11ec-a579-c31f34aa6119",  "total":80,  "quotations":[  {  "id":"c595e610-46ab-11ec-b8ad-d56159e1778c",  "title":"anda",  "measuremntUnit":"kg",  "rate":35,  "quantity":2,  "isSelected":false,  "index":1  },  {  "id":"c595e610-46ab-11ec-b8ad-d56159e1778c",  "title":"biscuit",  "measuremntUnit":"packet",  "rate":10,  "quantity":1,  "isSelected":true,  "index":7}  ],  "sellerEmail":"ku1438693@gmail.com",  "sellerUserId":"mfBBtfSX91YS9mXrkmEDTksA0712",  "sellerDisplayName":" Lila Kunwar",  "buyerUserId":"hanSW0s5MxOOENWnc5T1cLinekj2",  "buyerDisplayName":"saugat thapa",  "buyerEmail":"nexus.saugat26@gmail.com",  "sellerPhotoUrl":"https://lh3.googleusercontent.com/a/AATXAJ",  "buyerPhotUrl":"https://lh3.googleusercontent.com/a/AATXAJ"  }}  

я пытаюсь проверить, могут ли вышеуказанные данные вставляться в firestore, учитывая, что следующее является правилом безопасности. однако я получаю ошибку Error running simulation — An unknown error occurred .

 match /users/{userId}{    match /sold/{soldId}/{document=**}{  function isAuthed(){  return request.auth != null amp;amp; request.auth.uid == userId;  }  function isSeller(){  return request.auth.uid == resource.data.sellerUserId ||   request.auth.uid == resource.data.buyerUserId;  }  function isApproved() {  return request.resource.data.isApproved == false;  // || request.resource.data.reviewed == "false"  }  function quotations(){  return request.resource.data.quotations;  }  function isOtherThanQuotations(){  return   isValidStringInput(request.resource.data.buyerUserId) amp;amp;  isValidStringInput(request.resource.data.buyerEmail) amp;amp;  isValidStringInput(request.resource.data.buyerPhotoUrl) amp;amp;  isValidStringInput(request.resource.data.buyerDisplayName) amp;amp;  isValidStringInput(request.resource.data.sellerUserId)amp;amp;  isValidStringInput(request.resource.data.buyerEmail) amp;amp;  isValidStringInput(request.resource.data.buyerPhotoUrl) amp;amp;  isValidStringInput(request.resource.data.buyerDisplayName) amp;amp;  isValidNumber(request.resource.data.total) amp;amp;  // isApproved() amp;amp;  request.resource.data.createdAt == request.time;    }  function isSelected() {  return request.resource.data.isSelected == false;  // || request.resource.data.reviewed == "false"  }  function isValidQuotation(item) {  return quotations()[item].keys().hasAll(  [  'title',  'rate',  'quantity',  'measuremntUnit',  'isSelected',  'index',  ])  amp;amp; isValidStringInput(quotations()[item].title, 200)  amp;amp; isValidNumber(quotations()[item].rate)  amp;amp; isValidNumber(quotations()[item].quantity)    amp;amp; isValidStringInput(quotations()[item].measuremntUnit, 200)  amp;amp; isValidNumber(quotations()[item].index)  amp;amp; isSelected();      }     function isValidStringInput(input, maxSize) {  return input is string  amp;amp; input.size() gt; 0  amp;amp; input.size() lt;= maxSize;  }  function isValidNumber(input) {  return input is int  || input.matches('^[0-9] 

это потому, что у меня слишком много функций? прямо сейчас моя забота связана только с созданием. связано ли это  id  с тем, что для проверки не требуется правило безопасности? я также попытался проверить идентификатор, но ошибка все еще сохраняется. мне нужно более 10 карт в массиве, но это для простоты процесса тестирования.


Комментарии:

1. Где вы получаете ошибку Error running simulation — An unknown error occurred ? В вашем приложении или в консоли firebase?

2. Консоль @RafaelJan firebase. я обнаружил синтаксическую ошибку в "isValidquotation", которая должна быть "isValidQuotation", и использовал IsSelected() для карты, которая должна иметь доступ к карте, но доступ как к полю документа. я смог сделать это с помощью эмулятора firebase, где на вкладке журнала отображается предупреждение об ошибках. и я также использовал по одной строке за раз, чтобы выяснить, как заставить правило безопасности работать.

3. @Saugat Тапа ваша проблема решена?

4. Я скопировал ваше правило безопасности и попробовал его в консоли Firebase -gt; База данных Firestore -gt;gt; Правила, все работает нормально и публикуется без каких-либо ошибок(синтаксических ошибок или предупреждений). Просто в дополнение к вашим правилам я добавил rules_version=2 и сервисное облако. firestore{ } в первых двух строках. Вы добавили rules_version =2, сервисное облако. пожарный магазин в первых двух строках правил? Если вы этого не добавили, вы будете получать ошибки и предупреждения. Пожалуйста, подтвердите.

); } allow read: if isSeller(); allow write: if isAuthed() amp;amp; quotations().size() gt;= 1 amp;amp; quotations().size() lt;= 10 amp;amp; isOtherThanQuotations() amp;amp; isValidQuotation(0) amp;amp; (quotations().size() lt; 2 || isValidquotation(1) ) amp;amp; (quotations().size() lt; 3 || isValidquotation(2) ) amp;amp; (quotations().size() lt; 4 || isValidquotation(3) ) amp;amp; (quotations().size() lt; 5 || isValidquotation(4) ) amp;amp; (quotations().size() lt; 6 || isValidquotation(5) ) amp;amp; (quotations().size() lt; 7 || isValidquotation(6) ) amp;amp; (quotations().size() lt; 8 || isValidquotation(7) ) amp;amp; (quotations().size() lt; 9 || isValidquotation(8) ) amp;amp; (quotations().size() lt; 10 || isValidquotation(9) ) amp;amp; (quotations().size() lt; 11 || isValidquotation(10) ); } } это потому, что у меня слишком много функций? прямо сейчас моя забота связана только с созданием. связано ли это id с тем, что для проверки не требуется правило безопасности? я также попытался проверить идентификатор, но ошибка все еще сохраняется. мне нужно более 10 карт в массиве, но это для простоты процесса тестирования.

Комментарии:

1. Где вы получаете ошибку Error running simulation — An unknown error occurred ? В вашем приложении или в консоли firebase?

2. Консоль @RafaelJan firebase. я обнаружил синтаксическую ошибку в «isValidquotation», которая должна быть «isValidQuotation», и использовал IsSelected() для карты, которая должна иметь доступ к карте, но доступ как к полю документа. я смог сделать это с помощью эмулятора firebase, где на вкладке журнала отображается предупреждение об ошибках. и я также использовал по одной строке за раз, чтобы выяснить, как заставить правило безопасности работать.

3. @Saugat Тапа ваша проблема решена?

4. Я скопировал ваше правило безопасности и попробовал его в консоли Firebase -gt; База данных Firestore -gt;gt; Правила, все работает нормально и публикуется без каких-либо ошибок(синтаксических ошибок или предупреждений). Просто в дополнение к вашим правилам я добавил rules_version=2 и сервисное облако. firestore{ } в первых двух строках. Вы добавили rules_version =2, сервисное облако. пожарный магазин в первых двух строках правил? Если вы этого не добавили, вы будете получать ошибки и предупреждения. Пожалуйста, подтвердите.