I struggled with this one for quite some time as well. I did find a solution to the problem, and it works perfectly.
For what I was doing, not only did I need to select values from a drop down menu, I needed to populate a repeating table or section with the results. The solution I was trying to get was putting the drop-down menu within the repeating table, but this does not work. Here is what I did:
I created the drop-down list outside the repeating table. Within the repeating table I created a button to which I applied rules. The rule populates the current row of the repeating table, then filters the results so that the correct value is displayed.
My Sharepoint list contains the following values: Application_Number and Application_Name (so these would correspond to your field 1 and field 2).
My Infopath form contains a drop down menu called Requested software (which is populated with Application Name) and in the repeating table I have the Application Name displayed.
In the rule, set Action to: Set a Field's value
Set Field to the field that you want to populate from the drop-down menu (in my example, Application Name)
In the Value field, click the function button, Click insert field or group, choose your secondary data source from the drop-down menu, and select the field from your sharepoint list that will populate the text box. Then, click on Filter Data. Here I selected the Application number is equal to the Application Name field in the Infopath form. Click OK a bunch of times, and now the value field looks like this: @Application Name[@AppNumber = Application_Name] (Fields preceded by @ are from your data source. This basically says return the Application Name (from the Sharepoint list) for when the AppNumber (from the sharepoint list) is equal to the same value as the Application_Name from the Infopath form).
Note: the filter for your example should look like this: @Field2[@Field1 = <your infopath drop down menu field name>]