新线命令( n)不使用Firebase Firestore数据库字符串



我正在用Swift制作应用程序,并且正在使用Firebase Firestore。Firestore是一个数据库,它具有一些我放入UILabel中的字符串。有了我的某些字符串,我正在使用新的行命令(或n)。所以我的某些字符串看起来像这样:

"This is line onenThis is line twonThis is line three"

但是,每当检索该字符串时,它是 UILabel的addetoto,看起来像这样...

这是一行 n这是第2行 n这是第三行

...当应该像这样...

这是一行

这是两行

这是第三行

我假设n不适合来自数据库的字符串?我尝试使用\n双重逃脱。有人对此有修复吗?

这是我正在使用的代码...

    database.collection("songs").whereField("storyTitle", isEqualTo: "This is the story header").getDocuments { (snapshot, error) in
        
        for document in (snapshot?.documents)! {
            self.storyBodyLabel.text = (document.data()["storyBody"] as? String)!
   }
}

我得到了它。我只是简单地替换了角色" n n"从我使用newline命令接收的字符串中。

label.text = stringRecived.replacingOccurrences(of: "n", with: "n")

因为我手动键入我的字符串,并给了firebase一个字符串 "Line onenline twonline three"我正在替换" n n"与" n"但是,如果您给Firebase一个

之类的字符串
"Line one
Line two
Line three"

firebase用 "\n"替换了这些回报,然后制作代码

label.text = stringRecived.replacingOccurrences(of: "\n", with: "n")

希望有帮助!

您可以使用CSS Whitespace属性 n,它对我有用。

white-space: pre-line;

解决方案:将其添加到您的字符串中,然后完成(适用于Java用户(:

示例:

    if (dataSnapshot.exists())
    {
    ArrayList<String> userlogs2 = new ArrayList<String>();
    userlogs2.add(dataSnapshot.getValue().toString().replace("\n", "n"));
    
    Iterator<String> it2 = userlogs2.iterator();
    
    while (it2.hasNext()) {
    
    appendColoredText(userlogsmessages2, it2.next() + "n", Color.BLACK);
    
    appendUnderlinedText(userlogsmessages2,"____________" + "nn", Color.parseColor("#DB808080"));
    
                                    }

firestore不支持字符串值中的任何逃生序列。如果您在字符串中写入" n",则在阅读时将完全回到。如果您需要存储特殊的东西,则可能需要编码并解码该内容。

尝试了所有建议的答案,但没有一个对我有用的答案。最后,我通过在Firestore记录中使用"/n"修复了它,在Swift客户端中,我将其修复:

label.text = stringReceived.replacingOccurrences(of: "/n", with: "n")

对我来说,firebase将全部 n转换为\\ n,所以我只是用:

逆转了这种变化
theString.replaceAll( "\\n", "n" );

只是发布,因为我浪费了一些时间来计算正确的''

我发现我可以使用string.fromcharcode((函数将新线进入firestore字段。Firestore似乎需要字符串中的特殊字符是实际字符ASCII值,并且不会重新诠释逃生字符。

即。

"第一行" string.fromcharcode(13( "第二行"

100%工作

DB.collection(Global.DB_COLLECTION_PATH).document(NEWS_ID).get().addOnCompleteListener(new OnCompleteListener< DocumentSnapshot >() {
    @Override
    public void onComplete(@NonNull Task< DocumentSnapshot > task) {
        if (task.isSuccessful()) {
            body1 = task.getResult().getString("newsBody").replace("n", "n");
            nBody.setText(body1);
        }
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        Log.e("DB FAILED", e.getMessage());
    }
});

我希望这对您有用

我注意到,当您在JSON导出中添加 n的字符串时,然后将JSON上传到实时数据库中时,它会充当newline。但是,如果您从firebase控制台进行编辑,它会给您带来 n而不是newline的字符串。

firestore添加此类型----行 nline二 nline三

获取刺痛,替换并用TextView

显示

字符串sura = modellist.get(position(.getSura((。替换(" n"," n"(;

工作..

相关内容

  • 没有找到相关文章

最新更新