Como abrir el layout de firebase auth ui como primera actividad

He implementado el login con Firebase Auth UI, siguiendo la documentación agregue

startActivityForResult

Para mostrar el login, funciona OK, el problema es que al iniciar la aplicacion se puede visualizar la actividad que hace el llamado a startActivityForResult, aunque es por un momento no es lo deseado. Ademas que cuando se presiona el botón de atrás, se puede visualizar la actividad.

Mi intención es mostrar el login de Firebase Auth UI como primer layout.

startActivityForResult(                 // Get an instance of AuthUI based on the default app                 AuthUI.getInstance()                         .createSignInIntentBuilder()                         .setAuthMethodPickerLayout(buildMethodPickerLayout())                         .setAvailableProviders(getAuthProviders())                         .setIsSmartLockEnabled(!BuildConfig.DEBUG)                         .setTheme(R.style.AppThemeFirebaseAuth)                         .build(),                  RC_SIGN_IN); 

Como se puede ver estoy utilizando un layout propio al utilizar

setAuthMethodPickerLayout

Aunque el problema seria el mismo si utilizara el por defecto.

Nota: se que puedo utilizar el onActivityResult para que cuando presionen atrás salga de la aplicación, pero busco algo más limpio. Gracias de antemano

porque cuando ingreso una fila nueva en el datagridview se sobreescribe en la primera fila vb.net

estoy haciendo un sistema de punto de venta con lector de codigo de barras, los datos los cargo a un datagridview si agrego articulos con el mismo codigo de barras en la columna “cantidad” los suma automaticamente, pero al leer otro articulo con diferente codigo de barras en la primera lectura si lo agrega en una fila nueva, pero al agregar otr articulo igual, lo reescribe en la primera fila del datagridview, podrian ayudarme agrego parte del codigo para mayor explicacion

Dim fila As Integer = 0 Dim i As Integer Dim cantidad As Integer = 0 Dim existe As Boolean = False      Private Sub txt_No_Factura_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_No_Factura.KeyPress     Dim codigo As String      If txt_No_Factura.Text <> "" Then         Try              If (e.KeyChar = (Convert.ToChar(Keys.Enter))) Then                 Dim conexion As SqlConnection                 conexion = New SqlConnection("Data Source=Gabriel-PC\SQLEXPRESS;Initial Catalog=Ventas;Integrated Security=True")                 conexion.Open()                 Dim cod As String = txt_No_Factura.Text                 Dim cadena As String = "select codigo_barra,idproducto,nombre,precio_venta from producto where codigo_barra ='" & cod & "'"                 Dim comando As SqlCommand                 comando = New SqlCommand(cadena, conexion)                 Dim registro As SqlDataReader                 registro = comando.ExecuteReader()                 registro.Read()                   cod_barra.Text = registro(0)                 txt_idproducto.Text = registro(1)                 txt_nombreProducto.Text = registro(2)                 txt_precioUnitario.Text = registro(3)                  datalistado.ColumnCount = 5                 With datalistado                     .Columns(0).Name = "Cantidad"                     .Columns(1).Name = "Codigo Barra"                     .Columns(2).Name = "Codigo Producto"                     .Columns(3).Name = "Nombre"                     .Columns(4).Name = "Precio de Venta"                 End With                 conexion.Close()                  If datalistado.Rows.Count = Nothing Then                     cantidad += 1                     datalistado.Rows.Add()                     datalistado.Rows(f).Cells(0).Value = cantidad.ToString() - 1                     datalistado.Rows(f).Cells(1).Value = cod_barra.Text                     datalistado.Rows(f).Cells(2).Value = txt_idproducto.Text                     datalistado.Rows(f).Cells(3).Value = txt_nombreProducto.Text                     datalistado.Rows(f).Cells(4).Value = txt_precioUnitario.Text                     'f = f + 1                     txt_No_Factura.Text = ""                 End If                  If datalistado.Rows.Count > 0 Then                     For fila As Integer = 0 To datalistado.Rows.Count - 1                         If datalistado.Rows(fila).Cells(1).Value = cod_barra.Text Then 'cod.toString()                             existe = True                         Else                             existe = False                         End If                      Next                  End If                  If existe = True Then                     'f = f + 1                     cantidad += 1                     datalistado.Rows(fila).Cells(0).Value = (cantidad.ToString() - 1)                     datalistado.Rows(fila).Cells(1).Value = cod_barra.Text                     datalistado.Rows(fila).Cells(3).Value = txt_nombreProducto.Text                     datalistado.Rows(fila).Cells(4).Value = txt_precioUnitario.Text                     txt_No_Factura.Text = "" ' agregue esto                     'f = f + 1                 End If                 If existe = False Then                     datalistado.Rows.Add(txt_cantiad.Text, cod_barra.Text, txt_idproducto.Text, txt_nombreProducto.Text, txt_precioUnitario.Text)                     'f = f + 1                     txt_No_Factura.Text = ""                 End If             End If         Catch ex As Exception             MessageBox.Show("El articulo no fue registrado cuando ingreso a almacen")         End Try       End If 'fin del if para validar que no este vacia el textox  End Sub 

buscar valores repetidos y poner si es la primera , la segunda o la tercera vez que se repite

$  pdo = new DB(); $  no_mat = array(); $  query = $  pdo->connect()->prepare('SELECT ID_ESTUDIANTE,ID_CARRERA,ID_MATERIA FROM `calificaciones` WHERE ID_ESTUDIANTE = ?'); $  query1 = $  pdo->connect()->prepare('SELECT DISTINCT ID_ESTUDIANTE FROM `calificaciones`'); $  query2 = $  pdo->connect()->prepare('UPDATE calificaciones SET `NO_MATRICULA` = ? WHERE ID_ESTUDIANTE = ? AND ID_MATERIA = ?');  $  query1->execute(); foreach($  query1 as $  ids){     $  query->execute([$  ids[0]]);         foreach($  query as $  e){         array_push($  no_mat,$  e[2]);//ESTE ARREGLO GUARDA EL ID DE LA MATERIA     } //EL PROBLEMA ES QUE SI UNA MATERIA SE REPITE 3 VECES EN LA POSICION QUE ESTE ME SALE 3 Y NECESITO QUE EN LA PRIMERA SALGA 1 EN LA SEGUNDA 2 Y PUES CLARO EN LA TERCERA 3     for($  i=0;$  i<count($  no_mat);$  i++){         $  cont=(count(array_keys($  no_mat, $  no_mat[$  i])));         if($  cont>1 && $  cont<3){             $  query2->execute([$  cont,$  ids[0],$  no_mat[$  i]]);         }elseif($  cont>2){             $  query2->execute([$  cont,$  ids[0],$  no_mat[$  i]]);         }else{             $  query2->execute([1,$  ids[0],$  no_mat[$  i]]);         }        }     unset($  no_mat);     $  no_mat = array(); }