duplicate messages when using send batch of messages

Aperta
#372 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
csharp
Ambito
api, backend

Direzione di ricerca

Inizia dalla documentazione di sendEachAsync e confrontala con il ciclo di batching SendMultiNotiV2 mostrato, in particolare per quanto riguarda il modo in cui i messaggi vengono rimossi e ritentati. Riproduci i batch da 500 messaggi con l’ambiente Firebase Admin .NET SDK 2.4.0 indicato, quindi determina se i duplicati provengono dall’SDK o dal codice chiamante e documenta il comportamento confermato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

api: messaging
[READ] Step 1: Are you in the right place?
  • For issues related to the code in this repository file a Github issue.
  • For general technical questions, post a question on StackOverflow
    with the firebase tag.
  • For general Firebase discussion, use the firebase-talk
    google group.
  • For help troubleshooting your application that does not fall under one
    of the above categories, reach out to the personalized
    Firebase support channel.
[REQUIRED] Step 2: Describe your environment
  • Operating System version: window 10 (19045)
  • Firebase SDK version: 2.4.0 with VS2019
  • Firebase Product: messaging (auth, database, storage, etc)
  • .NET version: 4.6.1
  • OS: windows dotnet
[REQUIRED] Step 3: Describe the problem
Steps to reproduce:

When I send a list of messages using sendEachAsync method with data read all info from my DB (about 10000 users) and loop each 500 record and send batch then received duplicate messages.

I using code follow in doc:
https://firebase.google.com/docs/cloud-messaging/send-message

Relevant Code:

if (FirebaseApp.DefaultInstance == null)
{
FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.FromFile(Server.MapPath(ConfigurationManager.AppSettings["FCMKey"]))
});
}

var messages = new List()
int cnt = 0;
foreach (DataRow item in iResult.CursorData.Rows)
{
cnt++;

                            messages.Add(new Message()
                            {
                                Notification = new Notification()
                                {
                                    Title = item["title"].ToString(),
                                    Body = item["DESCRIPTION"].ToString()
                                },
                                Token = item["GCMID"].ToString()
                            });
                           
                            if (cnt == 500 || cnt==iResult.CursorData.Rows.Count)
                            {
                                try
                                {
                                   
                                    string Obj = fcm.SendMultiNotiV2(messages);
                                    messages.Clear();
                                    
                                }
                                catch (Exception ex)
                                {
                                    messages.Clear();                                        
                                }
                                finally
                                {
                                    cnt = 0;
                                    messages.Clear();
                                  
                                }
                            }
                        }
Lingua principale
C#
Stelle
408
Fork
147
Merge medio
1g 3h
PR unite (30g)
10

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di firebase/firebase-admin-dotnet

Tutte le issue di firebase/firebase-admin-dotnet

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.