First thing, you have to decide what data format the phone application
will use for sending the data to the Arduino: define a “language” of
sorts. Then you have to program both the phone and the Arduino to speak
that same language.
Unless the data throughput is critical, I strongly advise you to use a
text-based format, where each “message” is followed by a dedicated
character that signals the end of the message. Popular choices for the
message terminator are '\n' (ASCII line feed, numeric value 0x0a =
10), '\r' (carriage return = 0x0d = 13) and ';' (semicolon = 0x3b =
59). The semicolon is often used as a second-level separator, to split a
message into smaller fields.
Here is a simple example that reads one-line messages, using a line feed
as a delimiter:
void loop() {
if (bluetoothSerial.available() > 0) {
String message = bluetoothSerial.readStringUntil('\n');
Serial.println(message);
}
}
If you want to send the data as binary, then message framing becomes a
tricky problem. Since every possible byte value can legitimately appear
within the message (any byte can appear within a float), you cannot
simply reserve one byte to serve as a terminator. This is why, unless
you are an advanced programmer, I strongly encourage you to send
whatever data you want to send as text. Text also makes debugging much
easier.
Finally, I have to warn you that the String class is not friendly to
the memory of your Arduino, and can lead to instabilities if used
extensively. If you have time, I encourage you to study the robust way
to read text from the serial port: see the article Reading Serial on
the Arduino, by Majenko.